本頁面說明如何使用 Pod 層級的防火牆規則,控管 Pod 和服務之間的網路流量。
應用程式的網路政策可協助您定義 Pod 之間的通訊流量規則。這項功能可控管 Pod 在應用程式內彼此通訊,以及與外部端點通訊的方式。在已啟用多網路的 Google Kubernetes Engine (GKE) Enterprise 版叢集中,您可以為 Pod 網路啟用網路政策。您可以對應使用者指定的 Pod 網路,在額外的 Pod 介面上強制執行網路政策。
為什麼要使用多重網路政策
在下列情況中,您可能需要使用多重網路網路政策:
強化網路安全性:您想為特定 Pod 網路定義網路政策,藉此隔離及保護機密工作負載或資料。多重網路網路政策可限制曝光度,並縮小受攻擊面。
精細的流量控制:您希望精確控制不同 Pod 網路中 Pod 和服務之間的流量,以滿足複雜的網路拓撲和安全需求。
多租戶環境:您想為不同租戶或應用程式建立獨立網路,確保彼此的通訊不會互相干擾,同時維持對每個 Pod 網路內網路存取的控制權。
最佳化資源使用率:您想在特定 Pod 網路中實作網路政策,根據應用程式需求有效分配資源並設定流量優先順序,進而提升效能和可靠性。
容器化網路功能 (CNF) 的安全性:您想在同一個 Pod 中將管理流量與資料平面流量分開,防止潛在的安全漏洞和未經授權的存取行為。
多網路網路政策如何與 Pod 網路搭配運作
下圖說明如何使用註解,將網路政策套用至特定 Pod 網路,進而控管 GKE 叢集內 Pod 之間的流量。
上圖顯示多個工作站節點執行 Pod (容器化應用程式),以及這些節點如何透過網路基礎架構,在同一節點內或不同節點間進行通訊。此外,本教學課程也說明如何使用網路政策控管流量,以及如何使用虛擬私有雲和子網路區隔網路,進一步提升安全性和組織效率。
- 使用目標網路政策隔離流量:由於註解
networking.gke.io/network: blue-Pod-network
,網路政策只會影響「藍色」Pod 網路上的流量。預設 Pod 網路上的流量仍不受限制。 - 使用 Pod 網路政策強制執行單向流量:在上圖中,網路政策允許 Pod1 將流量傳送至「藍色」Pod 網路上的 Pod2。Pod2 無法將流量傳回同一網路上的 Pod1。標示為「test-app-2」的 Pod 網路政策會做為單向管道。具體來說,這項政策只允許傳送至標示為「test-app-3」的 Pod 的輸出流量,禁止與「test-app-1」等其他 Pod 通訊。
- 預設允許輸出流量:如果沒有為 Pod (本例中的 Pod1) 定義輸出政策,系統預設會允許「藍色」網路介面上的所有輸出流量。
- 確保現有功能相容性:所有標準 GKE 網路政策選項 (例如標籤選取器和 IP 位址區塊) 都適用於多重網路政策。
- 使用註解控管網路政策範圍:
- 如果您建立網路政策時未加入註解,GKE 會將多重網路網路政策套用至所選命名空間中 Pod 的所有網路介面,無論這些介面連線至哪個 Pod 網路。
- 如果您加入註解並指定有效的 Pod 網路名稱 (例如
networking.gke.io/network: blue-Pod-network
),GKE 會將政策套用至連線至該特定 Pod 網路的 Pod。 - 如果註解參照的 Pod 網路實際上不存在於叢集中,GKE 就不會將網路政策套用至任何 Pod。這是因為沒有任何 Pod 連線至指定的非現有網路。
- 為具有多個網路介面的 Pod 維護跨網路通訊:如果您套用網路政策來限制 Pod 內特定 Pod 網路的流量,這不會影響連線至同一 Pod 的其他 Pod 網路流量。
優點
使用多重網路網路政策的優點如下:
提升安全性:您可以套用精細的網路政策,降低未經授權存取和 GKE 叢集內橫向移動的相關風險。
彈性和自訂性:您可以自訂網路政策,因應不同 Pod 網路的特定安全性和流量管理需求,以支援各種工作負載和應用程式。
簡化網路管理:您可以避免建立過多的 Pod 網路,並使用網路政策精細控管通訊,簡化網路管理並降低複雜度。
成本最佳化:避免建立大量 Pod 網路,有助於最佳化資源用量,並降低網路基礎架構相關成本。
強化 CNF 保護機制:您可以隔離管理和資料層流量,並為每個部署作業套用特定網路政策,確保 CNF 部署作業的安全性和完整性。