- 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