Quay lại danh sách
Tin tức công nghệ

Mạng liên Cluster đa đám mây với Cilium ClusterMesh, BGP Control Plane và eBPF

21 tháng 8, 2026

Mạng liên Cluster đa đám mây với Cilium ClusterMesh, BGP Control Plane và eBPF

Khi hạ tầng Kubernetes của doanh nghiệp mở rộng trên nhiều nền tảng đám mây (như AWS EKS, Google Cloud GKE, và Bare-Metal/On-Premises), các mô hình mạng truyền thống bắt đầu bộc lộ nhiều hạn chế về độ trễ, băng thông, khả năng định tuyến IP và tính năng bảo mật zero-trust. Các mạng overlay truyền thống (như VXLAN hoặc Geneve không có native routing) làm tăng chi phí đóng gói gói tin (encapsulation overhead), giới hạn MTU, tiêu tốn CPU và ẩn IP của Pod khỏi các thiết bị mạng vật lý bên ngoài.

Sự kết hợp giữa Cilium ClusterMesh, eBPF Native Routing và Cilium BGP Control Plane giải quyết triệt để các rào cản này. Kiến trúc này cho phép định tuyến pod-to-pod liên cluster hiệu năng cao, vượt qua ranh giới cloud mà không cần sidecar proxy hay các thiết bị NAT gateway phức tạp.

1. Tổng quan Kiến trúc Doanh nghiệp

Giải pháp dựa trên ba thành phần cốt lõi hoạt động trên các môi trường cloud riêng biệt:

  • eBPF Datapath: Thay thế hoàn toàn iptables và Linux bridge bằng các chương trình eBPF chạy trực tiếp tại tầng nhân Linux (gắn vào TC filters và XDP hooks). Cung cấp khả năng cân bằng tải cấp socket, định tuyến trực tiếp và mã hóa băng thông qua WireGuard/IPsec.
  • Cilium BGP Control Plane: Tự động quảng bá các dải Pod CIDR, Service LoadBalancer IP và ClusterIP tới các thiết bị Switch ToR hoặc Router ảo của nhà cung cấp cloud (AWS Transit Gateway, GCP Cloud Router) thông qua giao thức eBGP chuẩn (tích hợp GoBGP trong Cilium Agent).
  • Cilium ClusterMesh: Đồng bộ hóa trạng thái Endpoint và Identity metadata giữa các Kubernetes cluster độc lập bằng etcd KVStore mesh. Thiết lập cơ chế phát hiện dịch vụ toàn cục (Global Service Discovery), tự động chuyển vùng sự cố (failover) và áp dụng chính sách bảo mật đồng nhất.
+---------------------------------------+       +---------------------------------------+
|            AWS EKS Cluster            |       |            GCP GKE Cluster            |
|  Pod CIDR: 10.240.0.0/16 (Cluster ID:1) |       |  Pod CIDR: 10.241.0.0/16 (Cluster ID:2)|
|  +---------------------------------+  |       |  +---------------------------------+  |
|  |     Cilium Agent + eBPF         |  |       |  |     Cilium Agent + eBPF         |  |
|  +---------------------------------+  |       |  +---------------------------------+  |
|         | BGP Session (eBGP)          |       |         | BGP Session (eBGP)          |
+---------|-----------------------------+       +---------|-----------------------------+
          |                                               |
          v                                               v
+------------------+     AWS DirectConnect / Cloud Interconnect     +------------------+
| AWS Transit Gateway| <==========================================> | GCP Cloud Router |
+------------------+                                            +------------------+

2. Chiến lược Quản lý Địa chỉ IP (IPAM)

Định tuyến Native liên cluster qua BGP yêu cầu quy hoạch địa chỉ IP không trùng lặp (Non-overlapping IPAM). Dải IP của Pod và Node giữa các cụm cloud phải được phân bổ duy nhất.

Tên ClusterCluster IDNode CIDRPod CIDRService CIDR
AWS EKS (us-east-1)110.100.0.0/1610.240.0.0/16172.20.0.0/16
GCP GKE (us-central1)210.101.0.0/1610.241.0.0/16172.21.0.0/16

3. Cấu hình Cilium với Native Routing và BGP

Triển khai Cilium bằng Helm, bật chế độ Native Routing (tắt encapsulation VXLAN), cấu hình Cluster ID duy nhất và kích hoạt BGP Control Plane.

# cilium-aws-values.yaml
cluster:
  name: eks-us-east-1
  id: 1

routingMode: native
ipv4NativeRoutingCIDR: 10.0.0.0/8
autoDirectNodeRoutes: true

ebpf:
  masquerade: true

bgpControlPlane:
  enabled: true

clustermesh:
  useAPIServer: true
  apiserver:
    service:
      type: LoadBalancer

ipam:
  mode: kubernetes

tunnelMode: "disabled"
endpointRoutes:
  enabled: true

Sau khi cài đặt Cilium, áp dụng Custom Resource Definition (CRD) CiliumBGPPeeringPolicy để thiết lập eBGP peering với router ảo của hạ tầng cloud.

apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeeringPolicy
metadata:
  name: bgp-peering-aws
spec:
  nodeSelector:
    matchLabels:
      cilium.io/bgp-virtual-router: "true"
  virtualRouters:
    - localASN: 65001
      exportPodCIDR: true
      neighbors:
        - peerAddress: "10.100.0.1/32"
          peerASN: 65000
          eBGPMultihop: 1
          connectRetryTimeSeconds: 10
          holdTimeSeconds: 30
          keepAliveTimeSeconds: 10
      serviceSelector:
        matchLabels:
          type: global-lb

4. Thiết lập Cilium ClusterMesh liên Cloud

Khi định tuyến IP giữa AWS và GCP đã thông suốt qua BGP, tiến hành kết nối ClusterMesh giữa hai cụm bằng Cilium CLI.

# Bật ClusterMesh trên AWS EKS
cilium clustermesh enable --context context-aws-eks --service-type LoadBalancer

# Bật ClusterMesh trên GCP GKE
cilium clustermesh enable --context context-gcp-gke --service-type LoadBalancer

# Kết nối AWS EKS tới GCP GKE ClusterMesh
cilium clustermesh connect --context context-aws-eks --destination-context context-gcp-gke

# Kiểm tra trạng thái kết nối ClusterMesh
cilium clustermesh status --context context-aws-eks

5. Định tuyến Dịch vụ Toàn cục & Chính sách Bảo mật

Định nghĩa Kubernetes Service với annotation service.cilium.io/global: "true" để bật tính năng cân bằng tải liên cluster. EndpointSlices sẽ tự động được đồng bộ qua ClusterMesh.

apiVersion: v1
kind: Service
metadata:
  name: payment-gateway
  namespace: production
  annotations:
    service.cilium.io/global: "true"
    service.cilium.io/shared: "true"
    service.cilium.io/global-affinity: "local"
spec:
  type: ClusterIP
  ports:
    - port: 8080
      targetPort: 8080
      protocol: TCP
  selector:
    app: payment-gateway

Cilium Network Policy cho phép áp đặt chính sách bảo mật Zero-Trust giữa các Pod thuộc các Cloud khác nhau thông qua nhãn Identity thay vì dựa vào địa chỉ IP tĩnh:

apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-cross-cluster-checkout
  namespace: production
spec:
  endpointSelector:
    matchLabels:
      app: payment-gateway
  ingress:
    - fromEndpoints:
        - matchLabels:
            app: checkout-service
            io.cilium.k8s.policy.cluster: gke-us-central1
      toPorts:
        - ports:
            - port: "8080"
              protocol: TCP

6. Chẩn đoán và Kiểm tra Trạng thái eBPF/BGP

Sử dụng các công cụ chẩn đoán tích hợp sẵn trong Cilium agent để kiểm tra các bảng eBPF map và phiên BGP:

# Kiểm tra trạng thái kết nối BGP Peer
kubectl -n kube-system exec -it ds/cilium -- cilium-dbg bgp peers

# Kiểm tra bảng cilium_ipcache chứa thông tin ánh xạ Pod IP toàn cục
kubectl -n kube-system exec -it ds/cilium -- cilium-dbg map get cilium_ipcache

# Theo dõi luồng gói tin thực tế bằng eBPF Monitor
kubectl -n kube-system exec -it ds/cilium -- monitor --type drop,bpf

7. Kết luận

Kiến trúc mạng liên cluster đa đám mây kết hợp giữa Cilium ClusterMesh, BGP Control Plane và eBPF giúp loại bỏ các điểm nghẽn hiệu năng của mô hình VPN Overlay truyền thống. Bằng cách thực thi định tuyến trực tiếp trong Linux Kernel qua eBPF và quảng bá dải IP qua BGP chuẩn, doanh nghiệp đạt được tốc độ xử lý gói tin tối ưu, khả năng bảo mật Zero-Trust linh hoạt và độ tin cậy cao cho các ứng dụng phân tán đa vùng.