本頁說明 Pod 的多網路支援功能,包括用途、相關概念、術語和優點。
總覽
Google Cloud 支援虛擬機器 (VM) 執行個體層級的多個網路介面。您最多可透過多個網路介面將 VM 連線至八個網路,包括預設網路和七個額外網路。
Google Kubernetes Engine (GKE) 網路會將多網路功能擴展至節點中運作的 Pod。Pod 支援多網路功能之後,您就能在 GKE 叢集的節點和 Pod 中啟用多個介面。Pod 支援多網路功能後,節點集區就不再受限於單一介面,節點也不會只能連線至單一 VPC 網路。
Network Function Optimizer (NFO) 是 GKE 適用的網路服務,可提供多網路支援、持續性 IP 位址,以及高效能的 Kubernetes 原生資料層。NFO 可在 GKE 上啟用容器化網路功能。多重聯播網是 NFO 的基本支柱之一。
如要為 Pod 和節點啟用多網路支援功能,請參閱為 Pod 設定多網路支援功能。
術語與概念
本頁面會使用下列概念:
主要虛擬私有雲:主要 VPC 是預先設定的 VPC,內含一組預設設定和資源。GKE 叢集會在這個虛擬私有雲中建立。如果刪除預先設定的 VPC,系統會在主要 VPC 中建立 GKE 叢集。
子網路:在 Google Cloud中,子網路是在虛擬私有雲中建立無類別跨網域路由 (CIDR) 和網路遮罩的方法。子網路具有單一主要 IP 位址範圍 (指派給節點),且可有多個次要範圍 (屬於 Pod 和 Service)。
節點網路:節點網路是指虛擬私有雲和子網路配對的專屬組合。在這個節點網路中,節點集區所屬的節點會從主要 IP 位址範圍分配 IP 位址。
次要範圍:次要範圍是屬於子網路的 CIDR 和網路遮罩。 Google Cloud GKE 會將此網路做為第 3 層 Pod 網路。Pod 可以連線至多個 Pod 網路。
Pod 網路:做為 Pod 連線點的網路物件。連線類型可以是 Layer 3
或 Device
。您可以在 netdevice
或 Data Plane Development Kit (DPDK) 模式中設定 Device
類型網路。netdevice
Layer 3
網路對應於子網路的次要範圍。Device
網路對應至虛擬私有雲上的子網路。GKE 多重網路中的 Pod 網路資料模型如下:
「
Layer 3
網路」:VPC -> 子網路名稱 -> 次要範圍名稱「Network」(網路):VPC -> 子網路名稱
Device
預設 Pod 網路: Google Cloud 在建立叢集時建立預設 Pod 網路。預設 Pod 網路會使用主要虛擬私有雲做為節點網路。根據預設,所有叢集節點和 Pod 都可使用預設的 Pod 網路。
具有多個介面的 Pod:Pod 上的多個介面無法連線至同一個 Pod 網路。
下圖顯示採用 Layer 3
網路的一般 GKE 叢集架構:
針對「裝置」類型網路 (可在 NetDevice 或 DPDK 模式中設定),VM vNIC 是以資源的形式管理,並傳遞至 Pod。Device
netdevice
DPDK
在此情況下,Pod 網路會直接對應至節點網路。「Device
」類型的網路不需要次要範圍。
用途
Pod 的多網路支援功能可解決下列使用情境:
- 部署容器化網路功能:如果您在容器中執行網路功能,這些容器會有個別的資料和管理層。Pod 的多重網路可隔離不同使用者層的網路、特定介面的高效能或低延遲,或是網路層級的多重租戶。這是為了符合法規、QoS 和安全需求。
- 連線至相同機構和專案中的虛擬私有雲:您想在虛擬私有雲中建立 GKE 叢集,並連線至其他虛擬私有雲中的服務。您可以透過多重 NIC 節點選項直接連線。這可能是因為中樞和輪輻模型,其中集中式服務 (記錄、驗證) 在中樞虛擬私有雲中運作,而輪輻需要私人連線才能存取。您可以透過 Pod 的多網路支援功能,將 GKE 叢集中執行的 Pod 直接連線至中樞 VPC。
- 使用 VFIO 執行 DPDK 應用程式:您想執行 DPDK 應用程式,這類應用程式需要透過 VFIO 驅動程式存取節點上的 NIC。您可以完全略過核心、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。這樣一來,裝置間的協作延遲時間就能縮到最短。 - 效能:如要提升應用程式效能,您可以將應用程式連線至最符合應用程式需求的網路。