원래 K8S 클러스터 환경을 구성하거나 EKS를 사용해서 구성해야 하지만 **minikube를 이용해서 구축
**한다.
둘 다 할거임
배포 대상이 되는 곳에 argocd 네임스페이스를 생성한 후 argocd를 배포
# argocd namespace 생성
kubectl create namespace argocd
# argocd 배포
kubectl apply -n argocd -f <https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml>
$ kubectl get pod -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 3h51m
argocd-dex-server-76ff776f97-hmgxl 1/1 Running 0 3h51m
argocd-redis-747b678f89-5nvbk 1/1 Running 0 3h51m
argocd-repo-server-6fc4456c89-nng5n 1/1 Running 0 3h51m
argocd-server-7d57bc994b-vxw2l 1/1 Running 0 3h51m
위 명령어로 설치된걸 확인할 수 있다
접근하는 방법은 여러가지가 있는데 처음 API 서버에서 기본은 Cluster IP기 때문에 접근을 위해 바꾸자
# LoadBalancer 타입으로 접근
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
External IP 접속
# 포트포워딩으로 접근 -> minikube는 이 방식으로 사용
kubectl port-forward svc/argocd-server -n argocd 8080:443
localhost:8080 접속
# NodePort 타입으로 접근 -> k8s는 이 방식으로 사용
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
node IP:NodePort 로 접속 // 아래서 보면 (ec2서버IP:31619) 접속 가능하다.
argocd NodePort 10.111.122.135 <none> 80:31619/TCP,443:32268/TCP 4h55m
# secret 암호 정보를 평문으로 가져옴
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
비밀번호는 랜덤이기 때문에 위 명령어로 비밀번호를 조회해서 접속 후 비밀번호를 바꿔야 한다