Jeeeyoung.log
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: true

Blue/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과 함께 사용하면 더욱 강력한 배포 환경을 구성할 수 있습니다.