관리용 클러스터에 ArgoCD를 배포하고 해당 ArgoCD에서 여러 클러스터의 배포를 관리하려고 한다. ArgoCD가 여러 클러스터에 접근하려면 인증정보를 가지고 있어야 하는데, 인증정보를 등록하는 가장 간단한 방법은 kubectl config에 등록된 context를 바로 추가하는 것이다.
1. 관리용 K8S 구축 및 ArgoCD 서비스 배포 ( Skip )
2. Argo CLI 환경 구성하기
LINUX AMD64 환경이라면 이 방법이 가장 간단하다.
배포된 ArgoCD GUI로 접속하고 Documentation 탭에서 LINUX(AMD64)용 CLI를 다운로드한다. 그럼 argocd-linux-amd64 파일을 받을 수 있는데, argocd-linux-amd64 파일을 linux 서버로 복사한다.
mv ./argocd-linux-amd64 ./argocd
chmod +x ./argocd
sudo mv ./argocd /usr/local/bin
그리고
argocd-linux-amd64 파일의 이름을 argocd로 변경하고 실행권한을 준 뒤, /usr/local/bin으로 옮겨 어디서든 명령어가 실행가능하도록 한다. Linux 환경이 아니라면 아래 링크 참조를 추천한다.
https://argo-cd.readthedocs.io/en/stable/cli_installation/
3. argocd 서버에 로그인하기
# 노드포트로 접근하는 경우
argocd login 192.168.1.100:32080 --username admin --password '12345678' --insecure
# 인그레스 + DNS + TLS로 접근하는 경우
argocd login argocd-mgmt.mingu.com --username admin --password '12345678'
argocd CLI가 관리용 argocd 서버에 명령을 보낼 수 있도록 위와 같이 로그인한다. 나는 argocd를 ingress로 외부로 노출시켜서 접근하였다. 노드포트나 인그레스로 외부로 노출시키고 argocd cli가 접근할 수 있도록 한다.
4. kubectl config 인증 통합하기
argocd에 여러 클러스터의 인증정보를 등록하려면 아래 명령어를 수행하면 된다.
argocd cluster add <context-name>
여기서 context-name은 kubectl config 파일(~/.kube/config)에 저장된 context를 의미한다. 그러므로 kubectl config 파일에 미리 접근할 클러스터들의 Context가 생성되어 있어야 한다. Context 생성방법은 아래 링크를 참고하면 된다.
https://lordofkangs.tistory.com/717
kubectl로 여러 Kubernetes 클러스터 제어하기
여러 대의 Kubernetes 클러스터를 운영할 때는 각 클러스터의 컨트롤 플레인에 개별적으로 접속해 kubectl을 실행하기보다, 단일 관리 지점에서 kubectl로 통합 제어하는 방식이 관리 효율성과 보안 측
lordofkangs.tistory.com
5. argocd에 cluster context 등록하기
kubectl config get-contexts
argocd cluster add <context-name>
context를 kubectl 명령어로 조회하고 argocd 명령으로 cluster context를 등록한다.
context를 추가하려 argocd gui로 들어와 Settings/Clusters 탭을 확인하면 위처럼 현재 접근가능한 클러스터 목록을 확인할 수 있다. Status는 디폴트가 Unknown 상태이고 application을 하나 이상 배포해야 Sucessful 상태가 된다.
'DevOps > K8S' 카테고리의 다른 글
kubectl로 여러 Kubernetes 클러스터 제어하기 (2) | 2025.08.25 |
---|---|
ETCD BackUp / Restore ( ETCD 백업 및 복원 ) (0) | 2025.06.22 |
Kubernetes 네트워크 동작원리 (0) | 2025.06.18 |
[K8S] Containerd에 Registry 설정하기 ( with Harbor ) (1) | 2025.06.04 |
kubectl alias 및 자동완성 설정하기 (0) | 2025.05.20 |