아키텍처 개요

아키텍처 개요 (Architectural Overview)

Argo CD는 컨트롤 플레인이 여러 독립된 컴포넌트로 나뉘어 동작해요. 각 컴포넌트가 하는 일을 이해하면 Argo CD가 애플리케이션을 어떻게 배포하고 동기화하는지 파악하기 쉬워져요.

출처: 문서

본문

Argo CD Architecture

컴포넌트 (Components)

API 서버 (API Server)

API 서버는 Web UI, CLI, CI/CD 시스템이 사용하는 API를 노출하는 gRPC/REST 서버예요. 다음과 같은 책임이 있어요:

  • 애플리케이션 관리 및 상태 보고
  • 애플리케이션 작업 호출 (예: sync, rollback, 사용자 정의 action)
  • 리포지토리 및 클러스터 자격 증명 관리 (K8s secret으로 저장)
  • 외부 ID 공급자에 대한 인증 및 인증 위임
  • RBAC 강제
  • Git webhook 이벤트에 대한 수신자/전달자

리포지토리 서버 (Repository Server)

리포지토리 서버는 애플리케이션 매니페스트가 들어 있는 Git 리포지토리의 로컬 캐시를 유지하는 내부 서비스예요. 다음 입력이 제공되면 Kubernetes 매니페스트를 생성하고 반환할 책임이 있어요:

  • 리포지토리 URL
  • 리비전 (커밋, 태그, 브랜치)
  • 애플리케이션 경로
  • 템플릿 특정 설정: 파라미터, helm values.yaml

애플리케이션 컨트롤러 (Application Controller)

애플리케이션 컨트롤러는 실행 중인 애플리케이션을 지속적으로 모니터링하고 현재의 라이브 상태를 (리포지토리에 지정된) 원하는 대상 상태와 비교하는 Kubernetes 컨트롤러예요. OutOfSync 애플리케이션 상태를 감지하고 선택적으로 시정 조치를 취해요. 수명 주기 이벤트(PreSync, Sync, PostSync)에 대한 사용자 정의 훅(hook)을 호출할 책임이 있어요.

더 알아보기 (Learn more)