Skip to content

Cilium

基於 eBPF 的雲端原生網路與安全方案

軟體分類 網路與資安 / 雲端原生
軟體標籤
Audacity影音文字擴充工作流程ScreenVividSplitPro
開發廠商 The Cilium Project (CNCF)
Stars
0
Forks
0
License
APACHE LICENSE 2.0
Version
v1.18.6
Update
OS

產品說明

Cilium 是一款開源的容器網路介面(CNI)軟體,專為提供、保護與觀察容器工作負載(如 Kubernetes)之間的網路連線而設計。它的核心技術基礎是 Linux 核心的 eBPF(Extended Berkeley Packet Filter),這使得 Cilium 能夠在不修改應用程式程式碼或容器設定的情況下,動態地將強大的安全性、可見性與網路控制邏輯植入到 Linux 核心中。

與傳統依賴 iptables 的網路方案(如 Flannel 或 Calico 的舊模式)相比,Cilium 利用 eBPF 繞過了繁重的核心網路堆疊,提供了極致的傳輸效能。此外,它突破了傳統「基於 IP」的防火牆限制,採用「基於身分(Identity-based)」的安全模型,能精確地針對應用層(Layer 7,如 HTTP/gRPC)進行存取控制。

核心特色:

  • eBPF 高效能資料平面:利用 eBPF 技術取代 kube-proxyiptables,大幅降低延遲並提升吞吐量。
  • 身分識別式安全(Identity-Aware Security):安全策略與 Pod IP 解耦,透過 Kubernetes Labels 自動識別服務身分,即使 Pod 重啟 IP 變更,安全策略依然有效。
  • 無 Sidecar 服務網格(Sidecar-less Service Mesh):直接在節點層級處理 Service Mesh 功能(如 mTLS、L7 流量管理),無需為每個 Pod 注入 Sidecar 代理,節省大量資源。
  • Hubble 可觀測性:內建 Hubble 平台,提供網路流量、DNS 查詢與 HTTP 請求的深度可視化與除錯功能。

常用指令

Cilium 提供了強大的命令列工具 cilium 用於安裝與管理,以及 hubble 用於觀測網路流量。

安裝與狀態檢查

# 在目前的 Kubernetes Context 安裝 Cilium
cilium install

# 檢查 Cilium 運作狀態
cilium status

# 執行連線能力測試(確認叢集網路正常)
cilium connectivity test

Hubble 可觀測性操作

# 啟用 Hubble 可觀測性功能
cilium hubble enable

# 啟用 Hubble UI 介面
cilium hubble enable --ui

# 觀察特定 Namespace 的網路流量(類似 tcpdump 但更易讀)
hubble observe -n default
指令功能說明範例
install安裝cilium install
status狀態檢查顯示 Agent、Operator 與 K8s 的連線狀態
hubbble enable啟用觀測開啟 Hubble Relay 與 UI 服務
connectivity test連線測試自動部署測試 Pod 並驗證跨節點通訊
bpfBPF 偵錯直接檢視 eBPF Maps 的底層資訊
encrypt status加密狀態檢查 WireGuard 或 IPsec 透明加密的狀態

進階技巧

  • 檢視被阻擋的流量:使用 Hubble 快速找出被 Network Policy 阻擋的請求。

    hubble observe --verdict DROPPED
    
  • L7 流量分析:觀察特定 Pod 的 HTTP 請求細節。

    hubble observe --pod frontend --protocol http
    
  • 替換 Kube-proxy:在安裝時啟用完全取代 kube-proxy 模式,以獲得最佳效能。

    cilium install --set kubeProxyReplacement=strict
    

操作介面

Cilium 附帶的 Hubble UI 是一個現代化的網頁介面,能自動繪製叢集的服務相依圖(Service Map)。