ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes.
ArgoCD는 Kubernetes를 위한 선언적인 GitOps CD 도구 입니다.
Desired State
GitOps 이이에 운영을 위한 유틸리티 다수기능 지원 (많이 사용하게 된 이유)
Multi k8s Cluster연계
SSO연동
권한제어(RBAC)
Hook지원
알림기능
다양한 운영 명령어(kubectl, argo CLI)
개발 SDK지원, REST API제공
Helm, kustoimze등 지원
.......
단점
쿠버네티스에서만 동작
많은 지식 필요 (k8x, container, helm ...)
빌드 파이프라인은 별도 구축 필요 (Argo CD는 배포만 담당)
버전마다 버그가 있어 최신 버전 권장
ArgoCD Architecture
API Server
ArgoCD 에서 발생하는 다양한 작업 요청에 대한 API Endpoint.
RESTful API와 gRPC제공
Application Controller
어플리케이선 관리 및 배포 자동화 담당 컨트롤러
배포된 어플리케이션의 상태를 지속적으로 추적 및 모니터링
Application Controller ← → Kubernetes API
Repository Server
어플리케이션의 형상 정보를 가지고 있는 매니페스트가 보관된 Git레포지토리를 관리하는 역할.
Git레포지토리와 클러스터 사이 동기화 작업을 담당
Repo Server ← → Git Repository
ApplicationSet Controller
ApplicationSet이라는 Custom Resource Definition(CRD)에 대한 지원을 담당하는 컨트롤러.
다수의 멀티 Kubernetes 클러스터를 관리 할 수 있도록 지원
ApplicationSet Controller ← → A-KubernetesAPI, B-KubernetesAPI
ApplicationSet Controller ← → A-GitRepo, B-GitRepo
Dex Server
싱글 사인온(SSO) 및 인증관리를 위한 서버.
Dex Server ← → GitHub
Dex Server ← → Google-OAuth