Skip to main content

멀티클러스터 & Federation

하나의 거대한 클러스터보다 여러 개의 클러스터가 나은 이유


1. 왜 멀티클러스터인가

이유설명
장애 격리하나의 클러스터 장애가 전체에 영향을 주지 않음 (Blast Radius 제한)
규정 준수데이터 주권, 지역 법규에 따라 클러스터 분리
환경 분리dev / staging / prod를 클러스터 수준에서 격리
팀 분리팀별 독립 클러스터로 자율성 + 책임 부여
하이브리드/멀티클라우드AWS + Azure, 온프레미스 + 클라우드

2. 관리 도구

도구방식특징
Rancher웹 UI 기반✅ 가장 쉬운 멀티클러스터 관리. 클러스터 생성/관리/모니터링
ArgoCDGitOps여러 클러스터에 동일 앱 배포. ApplicationSet
Cluster APIK8s로 K8s 관리K8s 오브젝트로 클러스터 생명주기 관리 (선언적)
vCluster가상 K8s하나의 물리 클러스터 안에 가상 K8s 클러스터 생성

vCluster

flowchart TB
subgraph HostCluster["호스트 클러스터"]
subgraph NS1["namespace: team-a"]
VC1["vCluster A<br/>(가상 K8s)"]
end
subgraph NS2["namespace: team-b"]
VC2["vCluster B<br/>(가상 K8s)"]
end
end
  • 네임스페이스 안에 독립적인 K8s API Server + etcd가 동작
  • 팀별 격리를 물리 클러스터 추가 없이 구현
  • dev/CI 환경에서 유용

3. 멀티클러스터 네트워킹

도구역할
Submariner클러스터 간 Pod 네트워크 터널링
Istio 멀티클러스터Service Mesh를 클러스터 간 확장
Skupper클러스터 간 서비스 연결 (L7)

4. 전략 패턴

패턴설명적합
환경별 분리dev/staging/prod 각각 클러스터✅ 가장 일반적
지역별 분리서울/도쿄/미국 등 지역별글로벌 서비스
팀별 분리팀마다 독립 클러스터대규모 조직
Active-Active여러 클러스터가 동시에 트래픽 처리고가용성
Active-StandbyDR 클러스터를 대기 상태로 유지재해 복구

다음 글

→ #17 FinOps — K8s 비용 최적화