ArgoCD
- Kubernates 환경에서 애플리케이션 배포와 관리를 지원하는 Kubernates Controller
- Github repository와 Kubernates 동기화
- Git repository 상태와 Kubernates 클러스터의 상태가 항상 일치
- Git repository에서 변경 사항을 감지하여 자동으로 kubernates 클러스터에 애플리케이션을 배포
- Kubernates resource를 정의하는 yaml(=manifests)는 일반적으로
Helm
을 사용하는데 작성한 helm chart를 Git repository에 올리면 ArgoCD는 자동으로 변경을 감지해서 배포를 하게 된다
설치
$ kubectl create namespace argocd
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
$ kubectl get po -n argocd -w
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 33s
argocd-applicationset-controller-6c99fd777c-m42zr 1/1 Running 0 34s
argocd-dex-server-7f6ffbc5ff-h8wtd 1/1 Running 0 34s
argocd-notifications-controller-5c69bb9ff5-whfqc 1/1 Running 0 34s
argocd-redis-7666ff8889-x856g 1/1 Running 0 34s
argocd-repo-server-b7b54f994-ht4g4 1/1 Running 0 34s
argocd-server-85b5c46975-tcdt8 1/1 Running 0
app 설정
Argo Rollout
- Blue/Green, Canary 같은 Kubernates Deployment 전략을 제공하는 Kubernetes controller