참고
https://tanzu.vmware.com/developer/guides/argocd-gs/
https://velog.io/@airoasis/ArgoCD-Kubernetes-Deployment
ArgoCD 설치
$ kubectl create namespace argocd
$ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
$ watch kubectl get pods -n argocd
※ 참고 사이트에도 문제 해결이라고 해서 나온 부분이 있는데, 내 경우에도 ImgPullError 가 한참을 발생했었다. 아마도 내 문제는 EC2 nameserver 관련 오류였던 것 같다.
ArgoCD CLI 설치
$ curl -sSL -o ~/bin/argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
$ chmod +x ~/bin/argocd
내 경우에는 curl 로 정상 다운로드가 되지 않아서 (이것도 DNS 문제 같기도 함), 브라우저에서 다운로드 받은 후 FTP로 올려서 진행했다. 보통 일반적인 경우 /usr/bin에 넣는 편.
ArgoCD 서비스 노출
$ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
내 경우엔 EC2로 별도 구성한 상태라서 LoadBalancer를 써도 IP 할당이 되지 않아서 NodePort로 구성함
[ec2-user@k8s-worker2 ~]$ kubectl get svc -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 10.110.53.138 <none> 7000/TCP 28m
argocd-dex-server ClusterIP 10.103.247.184 <none> 5556/TCP,5557/TCP,5558/TCP 28m
argocd-metrics ClusterIP 10.98.178.16 <none> 8082/TCP 28m
argocd-notifications-controller-metrics ClusterIP 10.111.34.115 <none> 9001/TCP 28m
argocd-redis ClusterIP 10.109.28.1 <none> 6379/TCP 28m
argocd-repo-server ClusterIP 10.96.125.250 <none> 8081/TCP,8084/TCP 28m
argocd-server NodePort 10.103.88.24 <none> 80:32075/TCP,443:30285/TCP 28m
argocd-server-metrics ClusterIP 10.97.72.23 <none> 8083/TCP 28m
NodePort로 구성하면 별도 설정하지 않아도 자동으로 3만대의 port가 할당된다. 위의 경우 접속해야 하는 포트는 30285에 해당한다. (참고 1번 사이트처럼 port-forward를 하면 해당 서버에서만 접속이 되는데, 브라우저를 통해서 web ui를 봐야 해서 NodePort를 사용했다.)
ArgoCD 패스워드 확인
$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
ArgoCD 로그인
argocd login <ARGOCD_SERVER_DOMAIN>
내 경우엔 localhost:30285
$ argocd account update-password
여기까지 진행하고 나서 EC2 publicIP:30285로 접속해서 변경한 비번으로 로그인을 해보니 잘 되었다.