graph LR
agentk <-- gRPC 양방향 통신 --> kas
subgraph "GitLab"
kas[kas]
GitLabRoR[GitLab RoR] -- gRPC --> kas
kas -- gRPC --> Gitaly[Gitaly]
kas -- REST API --> GitLabRoR
end
subgraph "Kubernetes Cluster"
agentk[agentk]
end
GitLab RoR은 주요 GitLab 어플리케이션으로 kas와 통신하기 위해 gRPC를 사용합니다.agentk는 GitLab 에이전트로 요청을 처리하기 위해 kas와 통신을 유지합니다. 클러스터에서 발생하는 이벤트에 대한 정보를 전송합니다.kas는 GitLab 에이전트 서버로 다음과 같은 역할을 담당합니다.
agentk의 요청 수락GitLab RoR에 쿼리하여 agentk의 요청 인증Gitaly에 쿼리하여 해당 Git 리포지토리에서 에이전트의 구성 가져오기Gitlab RoR로부터의 들어오는 요청을 적절한 agentk와의 기존 연결과 매칭하여 요청을 전달하고 응답을 전달agentk로부터 수신된 이벤트에 대한 알림을 ActionCable을 통해 전송Gitaly와 통신하여 GitOps 지원을 위해 매니페스트 리포지토리 폴링https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/blob/master/doc/architecture.md