🎯 課程目標___HTMLTAG_66__HTMLTAG_67___了解 NetworkPolicy 來控制 Pod 進出流量。實施預設拒絕模式、允許特定流量並使用 Cilium 網路策略進行 L7 控制。
1。為什麼我們需要 NetworkPolicy?
預設情況下,Kubernetes 允許叢集中所有 Pod 之間的所有流量 — 每個 Pod 都可以呼叫其他 Pod。這是一個嚴重的安全風險。
NetworkPolicy 允許您定義 白名單規則:只有明確允許的流量才會通過。
___HTMLTAG_77__HTMLTAG_78___重要:NetworkPolicy 僅在 CNI 外掛程式支援時才有效(Cilium、Calico、Weave)。 Flannel 不支援 NetworkPolicy。2。網路策略剖析
___程式碼區塊_0___3。預設拒絕模式 — 最佳實務
從「全部拒絕」開始,然後開啟每個必要的流量流。
3.1 預設拒絕所有入口
___程式碼區塊_1___3.2 預設拒絕所有出口
___程式碼區塊_2___3.3 允許 DNS(如果拒絕出口就很重要)
___程式碼區塊_3___4。允許特定流量模式
前端 → 後端
___程式碼區塊_4___跨命名空間:允許來自其他命名空間__HTMLTAG_98___ ___程式碼區塊_5___
組合:Pod 選擇器與命名空間選擇器__HTMLTAG_100___ ___程式碼區塊_6___
5。 Cilium 網路政策 — L7
標準 Kubernetes NetworkPolicy 僅控制 L3/L4(IP、連接埠)。 Cilium CiliumNetworkPolicy 允許 L7 控制。
5.1 HTTP 方法與路徑
___程式碼區塊_7___5.2 基於 DNS 的政策
___程式碼區塊_8___6。驗證與偵錯網路策略
___程式碼區塊_9___7。最佳實務
-
___HTMLTAG_114__HTMLTAG_115___以預設拒絕開頭:適用於所有生產命名空間
___HTMLTAG_118__HTMLTAG_119___最低權限:僅開放絕對必要的流量
___HTMLTAG_122__HTMLTAG_123___標籤一致:網路策略取決於標籤選擇器 - 設定標籤一致
___HTMLTAG_126__HTMLTAG_127___應用於生產之前進行測試:使用 Hubble 審核模式查看哪些流量將被阻止
___HTMLTAG_130__HTMLTAG_131___文件政策:解釋建立每項政策的原因
摘要
- NetworkPolicy:Pod 流量的白名單規則
- 預設拒絕模式:阻止所有 → 允許特定
- 選擇器:podSelector、namespaceSelector(專案內的 AND 邏輯,專案之間的 OR 邏輯)
- Cilium CiliumNetworkPolicy:L7 HTTP、基於 DNS 的政策
- 需要 CNI 支援:Cilium、Calico(不是 Flannel)