문서 목차
Cluster Mesh 개요
Cluster Mesh 는 두 개 이상의 QKS 클러스터를 네트워크 수준에서 연결하는 기능입니다. Cilium Cluster Mesh 기반으로 동작하며, 연결된 클러스터 간의 파드와 서비스가 동일한 네트워크 안에 있는 것처럼 직접 통신할 수 있습니다.
QUANTUM C&S
개요
Cluster Mesh는 두 개 이상의 QKS 클러스터를 네트워크 수준에서 연결하는 기능입니다. Cilium Cluster Mesh 기반으로 동작하며, 연결된 클러스터 간의 파드와 서비스가 동일한 네트워크 안에 있는 것처럼 직접 통신할 수 있습니다.
주요 활용 사례
고가용성 (High Availability)
서로 다른 물리적 위치나 네트워크 구역에 있는 클러스터에 동일한 워크로드를 분산 배포합니다. 단일 클러스터 전체 장애가 발생해도 다른 클러스터에서 서비스를 지속할 수 있습니다.
공유 서비스 (Shared Services)
여러 팀의 클러스터가 공통 서비스(예: 중앙 로그 수집, 공유 데이터베이스, 인증 서버)를 하나의 클러스터에서 운영하고, 다른 클러스터에서 접근할 수 있습니다.
마이크로서비스 분리
서비스별로 독립된 클러스터를 운영하면서도 서비스 간 통신이 필요할 때 Cluster Mesh로 연결합니다.
동작 방식
Cluster Mesh가 활성화되면 각 클러스터의 Cilium은 연결된 클러스터의 엔드포인트와 서비스 정보를 동기화합니다.
Global Service를 설정하면 같은 이름의 Service가 여러 클러스터에 걸쳐 동작하며, 클라이언트는 가장 가까운 클러스터의 엔드포인트로 자동 라우팅됩니다.
# Global Service 예시
apiVersion: v1
kind: Service
metadata:
name: my-service
annotations:
service.cilium.io/global: "true" # 글로벌 서비스 활성화
service.cilium.io/shared: "true" # 다른 클러스터와 공유
spec:
selector:
app: my-app
ports:
- port: 80
클러스터 간 서비스 접근
Cluster Mesh가 연결된 상태에서, 클러스터 B의 my-service(네임스페이스: default)에 클러스터 A에서 접근하려면:
# 클러스터 A에서 클러스터 B의 서비스 접근
curl http://my-service.default.svc.cluster.local
Global Service로 설정된 경우 Cilium이 요청을 적절한 클러스터로 라우팅합니다.
연결 요구사항
Cluster Mesh를 구성하기 전에 다음 사항을 확인하세요:
| 조건 | 설명 |
|---|---|
| 클러스터 상태 | 연결할 두 클러스터가 모두 Running 상태여야 합니다. |
| Pod CIDR 비중복 | 두 클러스터의 Pod 네트워크 대역이 겹치면 안 됩니다. |
| Service CIDR 비중복 | 두 클러스터의 Service 네트워크 대역이 겹치면 안 됩니다. |
| 네트워크 연결 | 두 클러스터의 노드 간 직접 IP 통신이 가능해야 합니다. |
| 클러스터 이름 고유 | 연결된 클러스터들의 이름이 서로 달라야 합니다. |
관련 항목
- 클러스터 연결 — Cluster Mesh를 구성하는 단계별 방법