멀티클러스터 GitOps 아키텍처는 중앙 관리 클러스터(Hub)에서 여러 워크로드 클러스터(Spoke)를 관리하는 Hub-Spoke 모델을 기반으로 합니다.
Hub-Spoke 모델 개요
Hub-Spoke 모델의 장점
장점
설명
중앙 집중식 관리
단일 ArgoCD 인스턴스에서 모든 클러스터의 배포를 관리하여 운영 복잡성 감소
일관된 배포
ApplicationSet을 통해 여러 클러스터에 동일한 정책과 구성을 일관되게 적용
감사 추적
모든 배포 변경 사항이 Git에 기록되어 완전한 감사 추적 가능
권한 분리
Hub 클러스터에서만 배포 권한을 관리하여 보안 강화
재해 복구
클러스터 간 독립성을 유지하면서 신속한 장애 복구 가능
클러스터 등록 패턴
ArgoCD Terraform 설치
Terraform을 사용하여 고가용성(HA) ArgoCD를 설치하고 구성합니다.
Helm Provider 설정
HA ArgoCD 배포
변수 정의
NodePool GitOps 관리
EKS Auto Mode의 NodePool은 Kubernetes CRD(Custom Resource Definition)로 정의되므로, Terraform이 아닌 ArgoCD를 통해 GitOps 방식으로 관리하는 것이 적합합니다. 이를 통해 NodePool 변경 사항을 Git에서 추적하고, 여러 클러스터에 일관되게 적용할 수 있습니다.
왜 NodePool을 ArgoCD로 관리하는가?
Terraform 관리
ArgoCD 관리
인프라 프로비저닝에 적합
Kubernetes 리소스 관리에 적합
상태 파일 관리 필요
Git이 단일 진실의 원천
수동 terraform apply 필요
자동 동기화 및 자체 치유
클러스터별 별도 관리
멀티클러스터 일관성 유지
Blue 클러스터 NodePool 예제
Green 클러스터 NodePool 예제
Data Processing NodePool (전용)
NodePool 관리용 ArgoCD Application
ApplicationSet 전략
ApplicationSet은 여러 클러스터나 환경에 애플리케이션을 효율적으로 배포하기 위한 ArgoCD의 기능입니다. 다양한 Generator를 사용하여 동적으로 Application을 생성합니다.
Cluster Generator
등록된 모든 클러스터 또는 특정 레이블의 클러스터에 애플리케이션을 배포합니다.
Git Generator
Git 저장소의 디렉토리 구조 또는 파일을 기반으로 Application을 생성합니다.
Matrix Generator
여러 Generator를 조합하여 클러스터 × 애플리케이션 매트릭스를 생성합니다.
PR Generator (프리뷰 환경)
Pull Request 기반으로 프리뷰 환경을 자동 생성합니다.
Sync Wave 기반 배포
sync-wave 어노테이션을 사용하여 리소스 배포 순서를 제어합니다.
IAM Identity Center SSO
IAM Identity Center(이전 AWS SSO)를 ArgoCD와 통합하여 중앙 집중식 인증 및 권한 관리를 구현합니다.