Argo CD 설치 및 설정

ArgoCDGitOps Kubernetes 매니페스트를 관리하면서 클러스터에 계속해서 집중적으로 관리하고 있습니다.

아르고 CD 설치



https://argo-cd.readthedocs.io/en/stable/getting_started/
Argo CD를 kubernetes 클러스터에 설치

$ kubectl create namespace argocd
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml


HA 버전의 Argo CD를 설치합니다.


아르고 CD CLI 설치



아르고 CD CLI 설치

$ curl -sSL -o ~/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
$ chmod +x ~/bin/argocd



아르고 CD 서비스 추가



Argo CD는 기본적으로 외부에 있습니다. 앞으로 계속해서 LoadBalancer로 변경하세요.

$ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'



관리자 비밀번호가 변경되었습니다.



Argo CD는 처음admin 계정의 초기 암호를 kubernetes의 비밀로 저장합니다. 세상을 위한 암호.

$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo


Argo CD CLI를 이용하여 Argo CD에 로그인하십시오. 최초의 생성된 Load Balancer의 주소를 포함합니다.

kubectl get svc argocd-server -n argocd


그리고 로그인. 아이디는 admin 이다

argocd login <ARGOCD_SERVER_DOMAIN>


admin 사용자의 비밀번호를 업데이트합니다.

$ argocd account update-password



Argo CD는 Git repository를 3분에 한번씩 pollin 하면서 실제 kubernetes cluster 와 다른점을 확인한다. 따라서 배포시에 운이 없다면 최대 3분을 기다려야 Argo CD 가 변경된 image를 배포하게 된다. 이렇게 Polling 으로 인한 delay 를 없애고 싶다면 Git repository 에 Argo CD로 webhook을 만들어 놓으면 된다. 아래 link 참고
https://argo-cd.readthedocs.io/en/stable/operator-manual/webhook/



그러나 Argo CD는 내부적으로 발견되는 오류로 인해 발견되는 오류가 많은 IP에 접근하고 있습니다. 이랬다고 해서 웹훅을 하려고 하면 Argo CD의 로드 밸런서에 Github의 webhook 관련 API도 인바운드로 열려야 합니다.

아래 링크에 GitHub 의 IP 주소 관련 내용이 있고,
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses
실제 inbound 에 넣줘야 하는 IP는 아래에서 확인할 수 있다.hooks 에 있는 리스트를 넣어주면 된다.
https://api.github.com/meta



Argo CD Notification 을 사용하여 Slack 에 알림을 보내십시오.

Argo CD의 ApplicationSet을 활용하여 프로젝트를 설치하는 방법입니다. 앱의 앱이 효시로서 기대된다.

GitOps는 1.0이 공식적으로 업데이트되고 있으며 현재 예상하고 있습니다.
https://opengitops.dev/
https://github.com/open-gitops/documents

GitOps 1.0 의 문제점은 The pains of GitOps 1.0 참고.
현재 Kubernetes 의 configuration 관리를 위해 kustomize를 사용중이고 Argo CD 에서 kustomize를 이용한 배포를 한다. 만약 kustomize나 helm에서 branching을 사용한다면 Stop Using Branches for Deploying to Different GitOps Environments 를 읽어보면 도움이 될거 같다.



Argo CD를 사용하고 있는 스크린샷

좋은 웹페이지 즐겨찾기