이번 7주제는 실리콘밸리급 DevOps 팀에서 자주 사용하는 고급 전략인 **“GitOps + Argo CD + Helm을 활용한 멀티테넌시(다중 테넌트) Kubernetes 환경 관리 자동화”**입니다. 이는 하나의 클러스터에서 여러 환경(예: dev, staging, prod 또는 여러 고객 테넌트)을 격리하면서도, 하나의 깃 저장소로부터 완전 자동화된 배포/업데이트가 가능한 구조를 설계하는 것이 핵심입니다.
⸻
⸻
🎯 목적
• 단일 쿠버네티스 클러스터 내 여러 테넌트를 논리적으로 격리하여 운영
• 각 테넌트에 대해 독립적으로 Helm values 구성
• 모든 테넌트 설정은 GitOps 방식으로 자동 배포 및 관리
• 보안 격리, 자원 제한, 배포 파이프라인 재사용성 확보
⸻
🧱 아키텍처 개요
┌──────────────────────────────────────┐
│ Git │
│ ├── base/ │
│ ├── tenants/ │
│ ├── team-a/values.yaml │
│ ├── team-b/values.yaml │
│ └── team-c/values.yaml │
└──────────────────────────────────────┘
│
▼
┌────────────────┐
│ Argo CD │
└────────────────┘
┌────┬────┬────┐
▼ ▼ ▼
Team A Team B Team C
NS=a NS=b NS=c
⸻
📁 Git 리포지토리 구조 예시
gitops/
├── base/ # 공통 Helm 차트 위치
│ └── myapp/
└── tenants/
├── team-a/
│ └── values.yaml
├── team-b/
│ └── values.yaml
└── team-c/
└── values.yaml
⸻
📄 Argo CD Application YAML 예시 (Helm Values 다중 적용)
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: team-a-myapp
namespace: argocd
spec:
destination:
namespace: team-a
server: https://kubernetes.default.svc
source:
repoURL: https://github.com/myorg/gitops
targetRevision: main
path: base/myapp
helm:
valueFiles:
- ../../tenants/team-a/values.yaml
project: default
syncPolicy:
automated:
prune: true
selfHeal: true
⸻
🧠 핵심 운영 전략
항목 전략
네임스페이스 격리 테넌트별 별도 네임스페이스 (RBAC 분리 포함)
Helm values 관리 values.yaml 파일로 각 테넌트의 설정만 커스터마이징
자동 동기화 Argo CD의 selfHeal + auto sync 기능 활성화
멀티 클러스터 확장 Argo CD Project 리소스를 통한 클러스터별 테넌트 배포 가능
Git 구조 관리 Kustomize 대신 Helm을 사용하여 더 명시적이고 유연한 버전 관리
Alert 연동 Argo CD Sync Failure를 Slack/Webhook으로 전송해 실패 추적
⸻
🛡️ 보안 및 격리 고려
• 네임스페이스 기반 ResourceQuota, LimitRange, NetworkPolicy 사용
• 테넌트별 ServiceAccount 생성 → 필요한 경우 RoleBinding 통해 Argo CD 권한 제한
⸻
🧪 확장 전략
시나리오 확장 방법
테넌트마다 버전 고정 필요 targetRevision: v1.2.3 개별 고정
테넌트마다 다른 리포 repoURL 분기 or ApplicationSet 활용
수십 개 테넌트 관리 Argo CD ApplicationSet으로 자동 Application 생성
테넌트별 TLS 도메인 Ingress 설정 Helm values로 커스터마이징
⸻
✅ 결론
이 구조는 Git 기반 변경관리 → Argo CD 자동 반영 → 각 테넌트 격리 운영이라는 완전한 GitOps 흐름을 제공합니다. 특히 하나의 Helm 차트로 수십 개의 고객이나 환경을 효율적으로 운영하려는 SaaS 기업·B2B 백엔드 플랫폼팀에 적합합니다.
IT & Tech 정보
🏢 GitOps + Argo CD + Helm 기반 멀티테넌시 쿠버네티스 운영 전략
반응형
반응형