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