카테고리 없음

🚀 AKS ArgoCD란? (Azure Kubernetes Service + ArgoCD)

idea9329 2025. 3. 11. 15:16
반응형

 

📌 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 배포를 자동화하세요! 🚀🔥

반응형