대규모(1,000 vClusters) 환경에서 GitOps, vCluster, Argo CD을 활용한 실전 고도 부하 테스트(incl. Code 정보, 구성도)

Argo CD와 vCluster로 대규모 멀티 테넌시의 도전

:exclamation_question_mark: 멀티 테넌시 Kubernetes 환경은 복잡합니다. 단순히 툴을 배포하는 것이 아니라, 다른 팀이 의존할 수 있는 플랫폼을 구축해야 하죠. Argo CD는 강력한 GitOps 기반이지만, 여전히 질문이 남습니다.

:exclamation_question_mark: 도대체 어디까지 확장 가능한가? 1,000개의 vCluster까지 확장된 부하 테스트 방법과, 유럽 2만~4만 유로 규모의 인프라 구성, 그리고 이를 STACKIT 클라우드에서 실제 부하 조건으로 검증한 과정을 공유합니다.

목표 및 배경

  • 문제 인식: Kubernetes에서 멀티테넌시 환경을 안정적으로 운영할 수 있을지, 특히 Argo CD가 하나의 컨트롤 플레인에서 얼마나 많은 클러스터(vCluster)와 애플리케이션을 관리 가능할지 실제 한계를 검증.
  • 비용 효율성: 1,000개의 실제 Kubernetes 클러스터 운영에 약 €200,000가 소요되나, vCluster 도입으로 €20,000 수준으로 절감.

왜 이 테스트를 했는가

우리 팀의 목표: 앱 개발자가 아니라 플랫폼 엔지니어를 위한 Kubernetes 플랫폼 운영 모범 사례를 내장한 도구 제공.
이를 위해 **Kubara**라는 템플릿 바이너리를 만들었습니다. Kubara는 에어갭 환경, 퍼블릭 클라우드, 엣지 환경 어디서나 작동하며 보안 GitOps Kubernetes 제어 플레인 부트스트랩을 단순화합니다.

(이번 글에서는 Kubara 자체가 아닌 Argo CD 부하 테스트에만 집중합니다.)


플랫폼 아키텍처 개요

구성 요소:

  • Terraform + Helm Catalog: 인프라/서비스 카탈로그 관리
  • Control Plane Node Pool: 공용 인프라 툴(ApplicationSets 기반 ESO, Ingress-NGINX, Prometheus 등) 배포
  • vCluster Pooling Strategy: 실제 1,000클러스터 대신 vCluster로 시뮬레이션
  • GitOps 기반 vCluster 온보딩: 각 vCluster를 Argo CD의 App-of-Apps 패턴으로 관리

부하 테스트 워크플로우

  1. Argo CD Application 생성 — YAML 템플릿 기반 다수 vCluster 애플리케이션 매니페스트 자동 생성
  2. vCluster kubeconfig를 Vault로 동기화 — ESO가 이를 참조해 시크릿 생성
  3. Argo CD가 vCluster에 연결 — 라벨 기반 애플리케이션 배포 제어

테스트 시나리오

  • 시나리오 1: 빈 vCluster 연결만 (애플리케이션 없음) — 연결 관리 한계 측정
  • 시나리오 2: vCluster당 1개 애플리케이션 배포 — 경량 멀티테넌시
  • 시나리오 3: vCluster당 3개 애플리케이션 배포 — 실제 운영에 가까운 부하

주요 결과

  • 시나리오 1: 500개의 vCluster까지 안정적으로 연결, 하지만 100개 이상부터 Application Controller 메모리 압박 발생 → 메모리 요청량 상향 조정
  • 시나리오 2: 500 vCluster, App 총 500개에서 Repo Server 과부하 및 UI 새로고침 15분 소요
  • 시나리오 3: App 수 800~850개에서 Application Controller OOM 발생 → Kube-Prometheus-Stack 등 CRD 많은 앱이 부하를 가중

배운 점

  • ApplicationSets에 RespectIgnoreDifferences=true 설정 필요
  • CPU Hard Limit은 특정 워크로드엔 부적합 → HPA 기반 조정 추천
  • Argo CD는 ~500 Application / ~50~60 Clusters 수준까지 안정
  • 실제 한계는 애플리케이션 복잡도, 매니페스트 생성 시간, API 응답 속도 등 다양한 변수에 의존

개선 및 대안

  • Argo CD 인스턴스 샤딩 또는 전용 배치
  • vCluster를 활용한 비용 절감형 멀티테넌시
  • Kargo, Flux CD, Sveltos 등 대체 또는 보완 도구 고려 가능

:information_source: 아래의 요점 내용을 확인하시고, 출처에서 구체적인 구성과 Code 정보로 업무에 도움이 되시길 바랍니다.

[출처] https://medium.com/itnext/how-we-load-test-argo-cd-at-scale-1-000-vclusters-with-gitops-on-kubernetes-d8ea2a8935b6