본문 바로가기
DevOps/cilium

[Cilium Study] BGP / Cluster mesh 비교

by 서어켜엉 2025. 8. 17.

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