본문 바로가기
문서 목차
QKS · Cluster Mesh

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 통신이 가능해야 합니다.
클러스터 이름 고유 연결된 클러스터들의 이름이 서로 달라야 합니다.

관련 항목