Cilium
基於 eBPF 的雲端原生網路與安全方案
軟體分類 網路與資安 / 雲端原生
軟體標籤
Audacity影音文字擴充工作流程ScreenVividSplitPro
開發廠商 The Cilium Project (CNCF)
產品說明
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-proxy與iptables,大幅降低延遲並提升吞吐量。 - 身分識別式安全(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 並驗證跨節點通訊 |
| bpf | BPF 偵錯 | 直接檢視 eBPF Maps 的底層資訊 |
| encrypt status | 加密狀態 | 檢查 WireGuard 或 IPsec 透明加密的狀態 |
進階技巧
檢視被阻擋的流量:使用 Hubble 快速找出被 Network Policy 阻擋的請求。
hubble observe --verdict DROPPEDL7 流量分析:觀察特定 Pod 的 HTTP 請求細節。
hubble observe --pod frontend --protocol http替換 Kube-proxy:在安裝時啟用完全取代 kube-proxy 模式,以獲得最佳效能。
cilium install --set kubeProxyReplacement=strict
操作介面
Cilium 附帶的 Hubble UI 是一個現代化的網頁介面,能自動繪製叢集的服務相依圖(Service Map)。




![]()
