Infrastructure/CICD

GitLab & ArgoCD를 활용한 GitOps방식의 CI/CD 구축하기 (2) - ArgoCd에 Cluster 추가하기

MingyuKim 2025. 3. 8.

ArgoCd에 application이 배포될 dev-cluster와 prod-cluster를 연동해 보겠습니다. Arogcd Setting 메뉴에 들어가면 Cluster 추가는 UI를 사용하여 진행할 수 없고, Documentaion을 통해 진행하라는 내용이 있습니다.

 


 

ArgoCD CLI Install

저는 MacOS 기준으로 포스팅하겠습니다. 각 클러스터에 접속할 수 있는 configure 설정값들이 들어있는 kubeconfig.yaml 파일이 로컬에 있다는 가정하에 local pc에 argocd cli 프로그램을 brew로 쉽게 설치할 수 있습니다.

brew install argocd

저는 nks를 사용하고 있고, ncp의 ncp-iam-authenticator을 설치하여 dev, mgt, prod 각 클러스터의 kubeconfig파일을 만들어서 하나로 merge 시킨 merged-kubeconfig.yaml 파일을 가지고 있다는 전제하에 포스팅을 이어가겠습니다.  NKS를 사용 중이신 분들은 링크의 내용을 토대로 kubeconfig파일 생성에 참고하시기 바랍니다.

 

 


 

 

ArgoCD CLI Login

아래 명령어로 UI환경이 아닌 CLI 환경에서 argocd에 로그인할 수 있습니다. 저는 DNS와 Ingress로 먼저 생성시켜놓은 ALB를 연결해놨기 때문에 아래와 같이 도메인으로 접속이 가능합니다.

argocd login https://argocd.mingyu.co.kr

 

DNS 설정을 하지 않아도 port foward 기능을 사용하여 로그인이 가능합니다.

kubectl port-forward svc/argocd-server -n argocd 8080:443
argocd login localhost:8080

 

 


 

Add Cluster In ArgoCD

Merged-kubeconfig.yaml 파일을 KUBECONFIG로 export 해두었다면, 일반 kubeconfig 명령어로 cluster name을 확인할 수 있습니다. kubeconfig 파일을 merge하는 방법은 아래와 같습니다.

# config파일들이 있는 폴더로 접근
cd ~/Workspace/kubeconfig

# KUBECONFIG 설정
export KUBECONFIG=$(pwd)/mgt-kubeconfig.yaml:$(pwd)/dev-kubeconfig.yaml:$(pwd)/prod-kubeconfig.yaml

# 설정된 config 설정을 merged-kubeconfig.yaml 파일로 생성
kubectl config view --flatten > merged-kubeconfig.yaml

# KUBECONFIG 재설정
export KUBECONFIG=$(pwd)/merged-kubeconfig.yaml

후에 config get contexts 명령을 사용하여 설정된 cluster의 이름을 가져올 수 있습니다.

kubectl config get-contexts

mgt cluster는 argocd가 설치된 in-cluster로 이미 설정되어 있으니, dev 및 prod 클러스터를 추가해줍니다.

argocd cluster add nks_kr_dev-cluster_{hash}
argocd cluster add nks_kr_prod-cluster_{hash}

 

 

댓글