🎯 課程目標__HTMLTAG_68___
完成本課程後,您將:
- ✅ 了解 eBPF 以及為何 Cilium 優於傳統 CNI
- ✅ 使用 Helm 安裝 Cilium 並驗證連線
- ✅ 將 kube-proxy 替換為 Cilium eBPF
- ✅ 啟用 Hubble 進行網路觀測
- ✅ 編寫 NetworkPolicy L3/L4/L7
第 1 部分:為什麼選擇 CILIUM?
1.1。比較流行的 CNI
| 標準__HTMLTAG_93___ | 印花布 | 法蘭絨 | 纖毛 |
|---|---|---|---|
| 資料平面 | iptables/eBPF | VXLAN | eBPF 本機 |
| 網路策略 | L3/L4 | ❌ 不支援 | L3/L4/L7 |
| 效能 | 好 | 平均 | 優秀 |
| 可觀察性 | 基本 | ❌ | 哈伯(深) |
| kube-proxy 取代 | ❌ | ❌ | ✅ 完整 |
| 加密 (WireGuard) | ✅ | ❌ | ✅ 原生 |
| 服務網格整合 | ❌ | ❌ | ✅ Istio/Envoy |
1.2。什麼是 eBPF?
___程式碼區塊_0___第 2 部分:纖毛設定
2.1。安裝 Helm
___程式碼區塊_1___2.2。刪除 kube-proxy(可選 — 替換為 Cilium)
___程式碼區塊_2___2.3。使用 Helm 安裝 Cilium
___程式碼區塊_3___2.4。重要參數解釋
| 參數 | 值 | 意義__HTMLTAG_198___ |
|---|---|---|
| kubeProxyReplacement | 正確 | Cilium 完全取代 kube-proxy__HTMLTAG_208___ |
| k8sServiceHost | 10.10.20.100 | VIP (HAProxy) 到 Cilium 連線 API 伺服器 |
| ipam.模式 | kubernetes | 使用 K8s IPAM(適合本地部署) |
| hubble.relay.enabled | 正確 | 啟用 Hubble Relay 進行流量聚合 |
| hubble.ui.enabled | 正確 | 啟用 Hubble UI(網頁儀表板) |
| operator.replicas__HTMLTAG_244___ | 2 | Cilium 操作員的 HA |
| bpf.masquerade | 正確 | eBPF 偽裝替換 iptables SNAT |
| loadBalancer.algorithm | 磁浮 | 一致的雜湊可減少擴充時的中斷 |
| 頻寬管理器 | 已啟用 + bbr | 基於EDT的速率限制+BBR擁塞控制 |
2.5。驗證 Cilium 安裝
___程式碼區塊_4___第 3 部分:CILIUM CLI — 連結性測試
3.1。安裝 Cilium CLI
___程式碼區塊_5___3.2。纖毛狀態
___程式碼區塊_6___3.3。連線測試
___程式碼區塊_7___第 4 部分:哈伯可觀測性
4.1。安裝 Hubble CLI
___程式碼區塊_8___4.2。查看網路流量
___程式碼區塊_9___4.3。哈伯使用者介面
___程式碼區塊_10___第 5 部分:CILIUM 的網路策略
5.1。部署測試應用程式
___程式碼區塊_11___5.2。預設拒絕所有策略
___程式碼區塊_12___程式碼區塊_13
5.3。允許前端 → 後端
___程式碼區塊_14___程式碼區塊_15
5.4。 Cilium L7 策略(HTTP 感知)
___程式碼區塊_16___程式碼區塊_17
第 6 部分:故障排除
6.1。常見問題
___程式碼區塊_18___6.2。清理測試資源
___程式碼區塊_19___💡 重點
-
___HTMLTAG_319__HTMLTAG_320___Cilium eBPF 優越:O(1) 查找,取代 kube-proxy,L7 策略
___HTMLTAG_323__HTMLTAG_324___kubeProxyReplacement=true:Cilium 處理所有服務,不需要 kube-proxy
___HTMLTAG_327__HTMLTAG_328___Hubble 實現深度可觀察性 — 查看流量、DNS 查詢、HTTP 請求
___HTMLTAG_331__HTMLTAG_332___網路策略:預設拒絕 + 白名單是最佳做法
___HTMLTAG_335__HTMLTAG_336___CiliumNetworkPolicy 擴充 K8s NetworkPolicy 新增 L7 規則(HTTP、gRPC、Kafka)
___HTMLTAG_339__HTMLTAG_340___cilium 連線測試__HTMLTAG_341___:執行 46 項測試以自動驗證網路
🎯 練習
練習 1:安裝 Cilium
- 安裝 Helm,使用 kubeProxyReplacement 安裝 Cilium
- 驗證所有節點就緒
- 執行 cilium 狀態和 cilium 連線測試
練習 2:網路策略實驗室
- 建立命名空間並部署 3 個 Pod(前端、後端、資料庫)
- 應用預設拒絕所有
- 建立策略:前端→後端 (HTTP GET),後端→資料庫 (TCP 5432)
- 驗證只有授權流量才有效
📚 下一篇文章
在 第 9 課:MetalLB — 適用於本地的 LoadBalancer 中,我們將安裝 MetalLB 以在叢集外部公開類型為 LoadBalancer 的服務。