📌 ArgoCD 개요
ArgoCD는 GitOps 방식의 Kubernetes 애플리케이션 배포 및 관리 도구입니다.
AKS(Azure Kubernetes Service)에서 ArgoCD를 사용하면 Git 리포지토리와 Kubernetes 클러스터를 자동으로 동기화하고 배포할 수 있습니다.
✅ 주요 특징:
✔️ GitOps 기반 배포: Git에 저장된 Kubernetes Manifest(YAML, Helm, Kustomize)를 자동으로 적용
✔️ 자동 동기화(Sync): 변경사항이 Git에 반영되면 자동으로 AKS에 배포
✔️ 웹 UI 제공: 클러스터 리소스를 쉽게 모니터링 및 관리
✔️ RBAC(Role-Based Access Control) 지원: 역할 기반 접근 제어 가능
✔️ Multi-Cluster 지원: 여러 Kubernetes 클러스터를 동시에 관리
🎯 1️⃣ AKS에서 ArgoCD를 사용하는 이유
💡 기존 배포 방식과 차이점
배포 방식특징단점
kubectl apply | 수동 배포, YAML 파일 직접 관리 | 배포 이력 관리 어려움 |
Helm | 차트 기반 배포, 템플릿화 지원 | 수동 업데이트 필요 |
ArgoCD (GitOps) | Git을 소스로 사용, 자동 동기화 | 초기 설정 필요 |
➡ ArgoCD는 Kubernetes 클러스터를 Git 상태와 동기화하여 배포 자동화 🚀
✅ 2️⃣ AKS에 ArgoCD 설치하기
📌 1. ArgoCD 네임스페이스 생성
kubectl create namespace argocd
📌 2. ArgoCD 설치 (YAML Manifest)
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
✅ 설치 확인
kubectl get pods -n argocd
✅ 출력 예시
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 1m
argocd-dex-server-57b6d4b64b-xyz12 1/1 Running 0 1m
argocd-redis-5d6767b5cb-xyz34 1/1 Running 0 1m
argocd-repo-server-76c8bcb67c-xyz56 1/1 Running 0 1m
argocd-server-5f9dfcb87f-xyz78 1/1 Running 0 1m
✅ 3️⃣ ArgoCD 웹 UI 및 CLI 접속
📌 1. ArgoCD CLI 설치
ArgoCD CLI를 설치하면 GitOps 배포를 명령어로 쉽게 제어 가능
✅ Linux/macOS
curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/
✅ Windows
choco install argocd-cli
✅ 설치 확인
argocd version
📌 2. ArgoCD UI에 로그인
ArgoCD UI를 실행하려면 서비스를 LoadBalancer 또는 Port Forwarding으로 노출해야 합니다.
✅ (1) ArgoCD 서버를 LoadBalancer로 노출
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
✅ (2) 현재 LoadBalancer IP 확인
kubectl get svc -n argocd argocd-server
✅ 출력 예시
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-server LoadBalancer 10.100.222.11 52.142.67.12 80:30007/TCP 5m
➡ 브라우저에서 http://52.142.67.12 접속 가능! 🎉
✅ (3) ArgoCD 기본 관리자 암호 확인
kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
➡ ID: admin
➡ PW: 출력된 값 사용
✅ 4️⃣ ArgoCD로 AKS에 애플리케이션 배포
ArgoCD를 통해 GitOps 배포를 적용하려면 Application 리소스를 생성해야 합니다.
📌 1. Git 리포지토리와 AKS 연결
ArgoCD는 Git을 배포 소스로 사용합니다.
argocd repo add https://github.com/my-org/my-kubernetes-apps.git --username <GIT_USER> --password <GIT_PASS>
📌 2. Git에서 배포할 애플리케이션 지정
argocd app create my-app \
--repo https://github.com/my-org/my-kubernetes-apps.git \
--path k8s \
--dest-server https://kubernetes.default.svc \
--dest-namespace default \
--sync-policy automatic
✅ ArgoCD 웹 UI에서 애플리케이션 자동 배포 확인 가능 🎉
✅ 5️⃣ ArgoCD 관리 명령어 모음
명령어설명
kubectl get pods -n argocd | ArgoCD 상태 확인 |
argocd login <ARGOCD_SERVER> | CLI로 로그인 |
argocd app list | 배포된 애플리케이션 목록 확인 |
argocd app get my-app | 특정 애플리케이션 상태 확인 |
argocd app sync my-app | Git과 동기화 |
argocd app delete my-app | 애플리케이션 삭제 |
🚀 결론: AKS + ArgoCD를 활용하는 이유
✅ GitOps 기반 배포 → Kubernetes 리소스를 Git에서 관리하고 자동 배포 가능
✅ 자동 동기화 → Git 변경 사항이 감지되면 자동으로 AKS에 적용
✅ Rollback 및 이력 관리 → Git에서 변경 이력 확인 가능
✅ 웹 UI 제공 → 직관적인 대시보드에서 상태 모니터링 가능
✅ Multi-Cluster 지원 → 여러 Kubernetes 클러스터를 한 번에 관리 가능
🎯 이제 AKS(Azure Kubernetes Service)에서 ArgoCD를 사용하여 GitOps 기반 Kubernetes 배포를 자동화하세요! 🚀🔥