그림으로 보는 컴포넌트 구성

각 컴포넌트 설명
- Application Controller : Application Custom Resource(CR)에 정의된 Git 저장소 경로, 동기화 정책, 배포 대상 클러스터 정보 등의 선언적 구성을 클러스터 내 실제 Kubernetes 리소스 상태와 지속적으로 비교함
- Application CR : 애플리케이션의 선언적 배포를 정의하고 관리하기 위한 커스텀 리소스로, Project 이름, Git 소스 정보, 배포 대상 클러스터, 동기화 정책 등의 메타데이터를 포함하고 있음
- Application Controller : 구성 변경을 감지하면 Repo Server를 통해 Git 저장소에서 소스를 가져와 새로운 YAML 매니페스트를 렌더링한 뒤, 이를 기반으로 Kubernetes 리소스를 생성하거나 업데이트하여 동기화를 수행
- Application 리소스 : Argo CD가 설치된 argocd 네임스페이스에 배포되며, 이를 argocd-application-controller 파드가 조회하고 관리하기 위해서는 해당 리소스에 대한 권한이 필요함. 현재는 ServiceAccount, ClusterRole, ClusterRoleBinding을 통해 클러스터 내 리소스에 대한 광범위한 권한이 명시적으로 부여되어 있음
- Argo CD는 기본적으로 자신이 배포된 네임스페이스 내 Application 리소스만 탐지하고 관리함.
단, v2.5 이상 버전에서는 application-controller 시작 시 네임스페이스 파라미터를 지정하거나, argocd-cmd-params-cm ConfigMap의 application.namespaces 항목을 설정하여 다른 네임스페이스의 Application 리소스도 추적할 수 있음.
만약 이러한 네임스페이스 파라미터나 ConfigMap 설정이 적용되어 있지 않으면 argocd 네임스페이스 내 Application 리소스만 탐지 및 관리하게 됨
- 또한 Argo CD UI를 통해 애플리케이션을 조회하기 위해서는 사용자에게 적절한 접근 권한을 부여하는 ConfigMap 설정이 필요하며, NodePort를 오픈하면 argocd-server에 외부에서 접근할 수 있음
ArgoCD 자원의 동작 원리

Argo CD는 여러 컴포넌트로 구성됩니다.
- Application Controller는 애플리케이션 정의를 통해 자원의 생성·삭제·동기화 작업을 결정하고 관리합니다.
- ApplicationSet Controller는 개별 애플리케이션 생성과 Owner Reference 연계 역할을 하며, 실제 배포 작업은 하지 않습니다.
- Argo CD Repository Server는 Git 저장소로부터 소스를 가져오고, 매니페스트를 렌더링하는 역할을 합니다.
'CICD > argoCD 공부 기록' 카테고리의 다른 글
| [argocd] argocd-cm ConfigMap (1) | 2025.06.26 |
|---|---|
| [argocd] argocd-rbac-cm ConfigMap (0) | 2025.06.26 |
| [argocd] Automated Sync Policy (0) | 2025.06.23 |
| [argocd] Argo CD Finalizer로 인한 삭제 사고를 피하는 방법 (0) | 2025.06.23 |
| [argocd] ArgoCD Architecture (0) | 2025.06.03 |