본문 바로가기
Infra2026년 4월 24일9분 읽기

ArgoCD vs Flux vs Cluster API — 2026 GitOps 도구 비교

YS
김영삼
조회 1
ArgoCD vs Flux vs Cluster API — 2026 GitOps 도구 비교

핵심 요약

GitOps는 더 이상 옵션이 아닌 표준. Git이 desired state, 도구가 자동 동기화. 2026년 시점 ArgoCD가 시장 60%, Flux 25%, Cluster API 10% (다중 클러스터 특화).

  • ArgoCD: UI 중심, 단일 클러스터 운영
  • Flux: CLI 중심, 자동화 친화
  • Cluster API: 클러스터 자체의 GitOps

1. ArgoCD 기본

# 설치
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.13.0/manifests/install.yaml

# Application 정의
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  source:
    repoURL: https://github.com/myorg/myapp
    targetRevision: main
    path: k8s/production
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

2. Flux 기본

# 설치
flux bootstrap github \
  --owner=myorg \
  --repository=myapp-gitops \
  --branch=main \
  --path=clusters/production

# Source
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: myapp
spec:
  url: https://github.com/myorg/myapp
  ref: { branch: main }
  interval: 1m

# Kustomization
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: myapp
spec:
  sourceRef: { kind: GitRepository, name: myapp }
  path: ./k8s/production
  prune: true
  interval: 5m

3. ArgoCD vs Flux 핵심 차이

항목ArgoCDFlux
UI풍부 (sync 시각화)없음 (Weave GitOps 별도)
설치 단순함kubectl apply 1줄flux bootstrap CLI
RBAC자체 + RBACK8s native RBAC
multi-tenantProject로 격리namespace 격리
app of apps지원Kustomization 중첩
image automationImage Updater (별도)Flux Image Automation
helm 통합좋음좋음 (Helm Controller)

4. ArgoCD ApplicationSet — 다중 환경

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: cluster-apps
spec:
  generators:
    - clusters: {}
  template:
    metadata:
      name: '{{name}}-myapp'
    spec:
      source:
        repoURL: https://github.com/myorg/myapp
        path: k8s/{{name}}
      destination:
        server: '{{server}}'

다수 클러스터에 동일 app 자동 배포.

5. Flux Image Automation

apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageRepository
metadata:
  name: myapp
spec:
  image: ghcr.io/myorg/myapp
  interval: 1m
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImagePolicy
metadata:
  name: myapp
spec:
  imageRepositoryRef: { name: myapp }
  policy:
    semver: { range: '1.x' }

새 이미지가 push되면 자동으로 Git PR 생성·머지 → 자동 배포.

6. Cluster API — 클러스터 자체 관리

apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: prod-cluster
spec:
  clusterNetwork:
    pods:
      cidrBlocks: ["10.244.0.0/16"]
  infrastructureRef:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
    kind: AWSCluster
    name: prod-cluster
  controlPlaneRef:
    apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    kind: KubeadmControlPlane
    name: prod-cluster-control-plane

클러스터 자체를 Git으로 관리. 만들기·업그레이드·삭제 모두 declarative. 큰 회사가 100+ 클러스터 운영 시 필수.

7. 도구 매트릭스

워크로드1순위
단일 클러스터, 운영팀 작음ArgoCD (UI 친화)
완전 자동화 우선Flux
다중 클러스터 (5개+)ArgoCD ApplicationSet
클러스터 라이프사이클Cluster API + ArgoCD
image 자동 업데이트Flux Image Automation

8. 운영 베스트 프랙티스

  • Git repository 구조: app 정의(/apps) + 환경별 overlay(/clusters/<env>)
  • secret은 SealedSecrets 또는 Vault Operator로 관리
  • auto-sync는 dev/staging만, prod는 수동 승인
  • health check 적극 활용 (sync wave)
  • RBAC — 팀별 namespace·project 격리

9. 보안

# Sealed Secrets로 Git에 secret 안전 저장
kubeseal < secret.yaml > sealed-secret.yaml
# sealed-secret.yaml은 Git에 push 가능 (encrypted)

# ArgoCD
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
  name: production
spec:
  destinations:
  - namespace: production
    server: https://kubernetes.default.svc
  sourceRepos:
  - https://github.com/myorg/* # whitelist

10. 도입 단계

  1. 스테이징 클러스터에 ArgoCD/Flux 설치
  2. 1개 service GitOps로 마이그레이션
  3. 모든 service GitOps 표준화 (1~2개월)
  4. ApplicationSet·Kustomization으로 환경 추상화
  5. image automation 도입
  6. 다중 클러스터 → Cluster API

11. 실측 — GitOps 도입 효과

지표before (kubectl)after (GitOps)
배포 시간15분2분
롤백 시간10~30분30초 (Git revert)
desired state 일치~70%99%+
incident 평균 복구45분12분

자주 묻는 질문

ArgoCD vs Flux 어느 게 정답?

UI 중요·단일 클러스터: ArgoCD. CLI 중심·자동화: Flux. 둘 다 잘 운영되면 선호 차이.

둘 다 사용 가능?

가능하지만 권장 안 함. 인지 부담 큼. 한 도구로 통일.

Helm + GitOps?둘 다 잘 통합. ArgoCD는 Helm chart를 source로 직접 받음. Flux는 HelmRelease CRD.

댓글 0

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