devops#ArgoCD#GitOps#Kubernetes
ArgoCD를 활용한 GitOps 배포 전략
GitOps란?
GitOps는 Git 저장소를 인프라와 애플리케이션의 **단일 진실 소스(Single Source of Truth)**로 사용하는 운영 방식입니다.
변경 사항은 모두 Git을 통해 이루어지며, CI/CD 파이프라인이 Git의 상태를 클러스터에 자동으로 반영합니다.
ArgoCD 기본 구조
ArgoCD는 Kubernetes 클러스터 내에서 동작하는 선언적 GitOps 도구입니다.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/example/my-app
targetRevision: HEAD
path: k8s/overlays/prod
destination:
server: https://kubernetes.default.svc
namespace: production
syncPolicy:
automated:
prune: true
selfHeal: trueBlue/Green 배포 설정
ArgoCD Rollouts를 사용하면 Blue/Green 배포 전략을 손쉽게 구성할 수 있습니다.
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-rollout
spec:
replicas: 3
strategy:
blueGreen:
activeService: my-app-active
previewService: my-app-preview
autoPromotionEnabled: false주요 장점
- 무중단 배포: 트래픽 전환 전 새 버전을 미리 검증
- 즉시 롤백: 문제 발생 시 이전 버전으로 즉시 전환
- 가시성: ArgoCD UI를 통해 배포 상태를 실시간 확인
마치며
ArgoCD와 GitOps를 도입하면 배포 과정의 투명성과 안정성이 크게 향상됩니다. 특히 Kustomize나 Helm과 함께 사용하면 더욱 강력한 배포 환경을 구성할 수 있습니다.