本文說明 Pod 的多網路支援功能,包括應用實例、相關概念、術語和優點。
總覽
Google Cloud 支援虛擬機器 (VM) 執行個體層級的多個網路介面。您最多可透過多個網路介面將 VM 連線至八個網路,包括預設網路和七個額外網路。
Google Kubernetes Engine (GKE) 網路會將多網路功能擴展至節點中運作的 Pod。Pod 支援多網路功能之後,您就能在 GKE 叢集的節點和 Pod 中啟用多個介面。Pod 支援多網路功能之後,節點集區就不再受限於單一介面,節點的網路連線也不會僅限於單一 VPC。
如要為 Pod 和節點啟用多網路支援功能,請參閱「為 Pod 設定多網路支援功能」。
術語與概念
本頁面會使用下列概念:
主要虛擬私有雲:主要 VPC 是預先設定的 VPC,內含一組預設設定和資源。GKE 叢集會在這個虛擬私有雲中建立。如果您已刪除預先設定的虛擬私有雲,建立 GKE 叢集時,必須指定現有的虛擬私有雲。
子網路:在 Google Cloud中,子網路是在虛擬私有雲中建立無類別跨網域路由 (CIDR) 和網路遮罩的方式。子網路具有指派給節點的單一主要 IP 位址範圍,且可有多個屬於 Pod 和 Service 的次要範圍。
節點網路:節點網路是指 VPC 和子網路配對的專屬組合。在這個節點網路中,節點集區的節點會從主要 IP 位址範圍分配 IP 位址。
次要範圍:次要範圍是屬於子網路的 CIDR 和網路遮罩。 Google Cloud GKE 會將此網路做為第 3 層 Pod 網路。Pod 可以連線至多個 Pod 網路。
Pod 網路:做為 Pod 連線點的網路物件。連線類型可以是 Layer 3 或 Device。您可以在 netdevice 或 Data Plane Development Kit (DPDK) 模式中設定 Device 類型網路。
Layer 3 網路對應於子網路的次要範圍。Device 網路對應至虛擬私有雲上的子網路。GKE 多網路中的 Pod 網路資料模型如下:
「網路」
Layer 3:VPC -> 子網路名稱 -> 次要範圍名稱「網路」
Device:虛擬私有雲 -> 子網路名稱
預設 Pod 網路: Google Cloud 在叢集建立期間建立預設 Pod 網路。預設 Pod 網路會使用主要虛擬私有雲做為節點網路。根據預設,所有叢集節點和 Pod 都可使用預設的 Pod 網路。
具有多個介面的 Pod:Pod 上的多個介面無法連線至同一個 Pod 網路。
下圖顯示採用 Layer 3 網路的一般 GKE 叢集架構:

針對「裝置」類型網路 (可在 netdevice 或 DPDK 模式中設定),VM vNIC 是以資源的形式管理,並傳遞至 Pod。Device在此情況下,Pod 網路會直接對應至節點網路。「Device」類型的網路不需要次要範圍。

用途
Pod 的多網路支援功能可解決下列用途:
- 部署容器化網路功能:如果您在容器中執行網路功能,這些容器會有個別的資料和管理層。Pod 的多重網路可隔離不同使用者層的網路、特定介面的高效能或低延遲,或是網路層級的多重租戶。這項設定是法規遵循、服務品質和安全性的必要條件。
- 連線至同一機構和專案中的虛擬私有雲:您想在虛擬私有雲中建立 GKE 叢集,並連線至其他虛擬私有雲中的服務。您可以透過多重 NIC 節點選項直接連線。這可能是因為中樞和輪輻模型,其中集中式服務 (記錄、驗證) 在中樞虛擬私有雲中運作,而輪輻需要私人連線才能存取。您可以透過 Pod 的多網路支援功能,將 GKE 叢集中執行的 Pod 直接連線至中樞 VPC。
- 使用 VFIO 執行 DPDK 應用程式:您想執行需要透過 VFIO 驅動程式存取節點上 NIC 的 DPDK 應用程式。您可以完全略過核心、Kubernetes 和 GKE Dataplane V2,達到最佳封包速率。
- 啟用直接存取 vNIC,略過 Kubernetes 和 GKE Dataplane V2:在容器中執行網路功能,需要直接存取節點上的網路介面卡 (NIC)。舉例來說,高效能運算 (HPC) 應用程式想略過 Kubernetes 和 GKE Dataplane V2,以達到最低延遲。部分應用程式也希望存取 NIC 的 PCIe 拓撲資訊,以便與 GPU 等其他裝置共置。
- 使用負載平衡器公開次要網路上的工作負載:您可以透過外部和內部直通式網路負載平衡器,直接在次要虛擬私有雲上公開工作負載 (例如容器化網路功能)。這樣一來,您就能在特定網路介面上提供應用程式存取權,而不必使用叢集的預設網路。
優點
Pod 的多網路支援功能具有下列優點:
- 流量隔離:Pod 支援多網路功能後,您就能在 GKE 叢集中隔離流量。您可以建立具有多個網路介面的 Pod,根據功能 (例如管理和資料層) 區分流量,這些 Pod 會在執行特定容器化網路功能 (CNF) 的 Pod 中。
- 雙重歸屬:雙重歸屬可讓 Pod 擁有多個介面,並將流量路由至不同的虛擬私有雲,讓 Pod 與主要和次要虛擬私有雲建立連線。如果某個 VPC 發生問題,應用程式可以回復到次要 VPC。
- 網路區隔:Pod 可以根據工作負載需求連線至內部或外部網路。您可以根據工作負載的具體需求,選擇要將哪些 Pod 或 Pod 群組連線至各個網路。舉例來說,您可以使用內部網路進行東西向通訊,並使用外部網路存取網際網路。您可以根據工作負載的特定需求,調整網路連線。
- 透過 DPDK 達到最佳效能:GKE 的 Pod 多網路支援功能可讓 DPDK 應用程式在 GKE Pod 中執行,提供最佳封包處理效能。
- Pod 中直接提供主機 NIC:
netdevice模式 NIC 支援多網路,可將 VM NIC 直接傳遞至 Pod,略過 Kubernetes 和 GKE Dataplane V2。這樣一來,裝置間的協作延遲時間就能縮到最短。 - 效能:如要提升應用程式效能,您可以將應用程式連線至最符合應用程式需求的網路。
- 多重網路負載平衡:支援 Pod 多重網路,可為次要網路上的服務佈建 Google Cloud 外部和內部直通式網路負載平衡器。這樣一來,您就能向特定虛擬私有雲上的用戶端公開應用程式,同時維持工作負載之間嚴格的網路隔離。