BGP를 활용해서 서로 다른 네트워크에 대한 통신을 가능하게 하는 실습을 하다가 갑자기 cluster mesh로 넘어 가길래 비슷한 개념이라고 생각했는데, 알아보니 조금 다른 개념인 것 같아서 정리를 한번 하고 지나가려고 한다.
ChatGPT 한테 물어봤다.
BGP vs Cluster mesh
| 구분 | Cluster Mesh | BGP |
|---|---|---|
| 정의 | Cilium이 제공하는 멀티클러스터 네트워킹 기능 | 인터넷/데이터센터에서 사용하는 표준 경로 교환 프로토콜 |
| 목적 | 서로 다른 Kubernetes 클러스터 간 Pod/Service 직접 통신 및 서비스 디스커버리 | 네트워크 장비 및 노드 간 IP Prefix 경로 정보 교환 |
| 적용 범위 | 클러스터 ↔ 클러스터 (K8s 내부 논리망) | 클러스터 ↔ 외부 네트워크(DC 라우터, ISP) |
| 작동 방식 | clustermesh-apiserver를 통해 Pod IP, Service 정보, Identity 동기화 후, Gateway Node를 통해 트래픽 터널링 또는 직접 전달 | BGP 세션을 맺고 PodCIDR/NodeCIDR 경로를 외부 라우터에 광고 |
| 네트워크 기술 | VXLAN/Geneve 같은 터널링, NodePort/LoadBalancer 기반 | TCP(179 포트) 기반의 BGP 세션, 표준 라우팅 프로토콜 |
| Service 동기화 | 지원 (멀티클러스터 서비스 디스커버리 가능) | 미지원 (순수하게 IP Prefix만 교환) |
| 보안 정책 연동 | 지원 (Cilium Identity 기반 정책 동기화) | 미지원 (라우팅만 담당) |
| 사용 시나리오 | 멀티클러스터 Kubernetes 환경 운영 | 클러스터 네트워크를 외부 데이터센터/ISP 라우터와 연결 |
결론
- Cluster Mesh = Cilium 전용 멀티클러스터 네트워킹 기능 (Pod ↔ Pod / Service ↔ Service 통신)
- BGP = 범용 라우팅 프로토콜 (클러스터 네트워크 ↔ 외부 네트워크 연결)
별로 와닿지 않는 설명이다. 그림을 그려서 좀 더 자세하게 설명해달라고 했다.
┌───────────────────────────────┐
│ Cluster A │
│ │
[Pod A1] ──▶ [cilium-agent A] ──▶ [Gateway Node A]
│ │
└───────────────────────────────┘
│
│ (IP Network: LAN, VPC, VPN 등)
▼
┌───────────────────────────────┐
│ Cluster B │
│ │
[Gateway Node B] ◀─ [cilium-agent B] ◀─ [Pod B1]
│ │
└───────────────────────────────┘[Pod A1] → [cilium-agent A] → [Gateway Node A]
└── VXLAN/Geneve 터널 ──▶ [Gateway Node B] → [cilium-agent B] → [Pod B1]다른 서버에 있는 Cluster 간의 통신이라고 해도, 최소한의 조건(서버 간 L3레벨-IP의 통신이 가능)만 충족된다면, cluster mesh 설정이 가능하다고 한다.
외부 라우터에 나의 podCIDR를 광고해서 통신을 하도록 한 BGP 기반 라우팅과는 조금 다르다.
여기까지 이해한 바로는 Overlay network와 좀 더 유사한 개념이라고 보면 될 것 같다.
그러면 Overlay network와의 차이점은 뭐지?
데이터 플레인 통신은 Overlay network 와 매우 유사하다.
cluster mesh에는 데이터가 아닌 컨트롤 플레인 동기화 기능이 있다.
clustermesh-apiserver라는 pod가 이 기능을 담당한다.
Cluster A
├─ cilium-agent (DaemonSet, 각 노드에 1개씩)
└─ clustermesh-apiserver (Deployment, 클러스터 전체에 2~3개 Pod)
Cluster B
├─ cilium-agent (DaemonSet, 각 노드에 1개씩)
└─ clustermesh-apiserver (Deployment, 클러스터 전체에 2~3개 Pod)
⇅ 두 클러스터의 clustermesh-apiserver끼리 gRPC/HTTP로 정보 교환여기서 cilium agent 는 앞에서 얘기한 overlay netowrk 터널 (VXLAN, Geneve)을 관리하고 직접 데이터 교환을 담당한다.
clustermesh-apiserver는 다른 클러스터와 Service/Endpoint/Identity/Policy 정보 교환을 한다.
다른 클러스터의 Identity와 Policy 정보를 동기화하기 때문에 cilium-agent가 같은 정책을 일관되게 평가 가능하도록 하는 역할을 한다.
'DevOps > cilium' 카테고리의 다른 글
| [Cilium Study] Cilium Service Mesh 2 (1) | 2025.08.20 |
|---|---|
| [Cilium Study] Cilium Service mesh 1 (0) | 2025.08.17 |
| [Cilium Study] Cluster mesh (3) | 2025.08.17 |
| [Cilium Study] BGP Control Plane (2) | 2025.08.16 |
| [Cilium Study] Pod간 통신 & k8s 외부 노출 4 (4) | 2025.08.10 |