ArgoCD

  • Kubernates 환경에서 애플리케이션 배포와 관리를 지원하는 Kubernates Controller
  • Github repository와 Kubernates 동기화
    • Git repository 상태와 Kubernates 클러스터의 상태가 항상 일치
  • Git repository에서 변경 사항을 감지하여 자동으로 kubernates 클러스터에 애플리케이션을 배포
  • Kubernates resource를 정의하는 yaml(=manifests)는 일반적으로 Helm을 사용하는데 작성한 helm chart를 Git repository에 올리면 ArgoCD는 자동으로 변경을 감지해서 배포를 하게 된다

image

설치

$ 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