본문 바로가기
Infra2026년 5월 31일3분 읽기

Argo CD 3.0 ApplicationSet — GitOps 패턴 1년 운영기

YS
김영삼
조회 881
Argo CD 3.0 ApplicationSet — GitOps 패턴 1년 운영기

핵심 요약

Argo CD 3.0 ApplicationSet으로 멀티 클러스터(prod 6, staging 4) × 멀티 앱(28개) = 280 Application을 8개 ApplicationSet으로 압축. 매니페스트 코드 -78%, 신규 환경 추가 30분. 1년 운영 사후.

1. ApplicationSet 패턴 — Cluster + Git generator

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: web-apps
spec:
  generators:
  - matrix:
      generators:
      - clusters: {}
      - git:
          repoURL: https://github.com/org/manifests
          directories:
          - path: apps/*
  template:
    metadata:
      name: '{{path.basename}}-{{name}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/org/manifests
        path: '{{path}}/overlays/{{name}}'
      destination:
        server: '{{server}}'
        namespace: '{{path.basename}}'

2. 신규 환경 추가 — 30분

새 클러스터 등록 후 cluster label만 추가하면 ApplicationSet이 자동으로 모든 앱 deploy. 기존엔 클러스터당 28개 Application 매니페스트 작성 필요.

3. 데이터

지표BeforeAfter
매니페스트 라인12,4002,700
신규 환경 추가2.5h30m
동기화 실패 회복수동자동 retry

4. progressive rollout

3.0의 progressive sync — staging cluster 먼저 update → 1시간 안정 확인 → prod cluster 순차 update. 실패 시 자동 rollback.

5. 함정

  • Template 변경 — ApplicationSet template 수정 시 모든 child Application 동시 sync, blast radius 큼. canary 클러스터 먼저 적용 후 promote
  • Secret 관리 — ApplicationSet은 Secret 자동 분배 안 함, External Secrets Operator 같이 사용
  • Generator 조합 — matrix generator 너무 중첩하면 Application 수 폭증, list × git × cluster 조합 주의
  • Sync wave — ApplicationSet 내부 의존성 표현 어려움, label 정책으로 우회

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록