本頁說明如何在 Google Kubernetes Engine (GKE) 叢集上啟用自動 IP 位址管理 (自動 IPAM)。啟用自動 IPAM 後,GKE 會自動在叢集中建立子網路,並管理節點和 Pod 的 IP 位址。對於 Service,GKE 預設會從 GKE 管理的範圍指派 IP 位址。
本頁內容適用於負責佈建及設定雲端資源、部署應用程式和服務,以及管理雲端部署作業網路的作業人員、雲端架構師、開發人員和網路工程師。如要進一步瞭解內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。 Google Cloud
總覽
傳統上,建立 GKE 叢集時,您會手動設定子網路,其中包含節點 IP 位址的主要範圍,以及 Pod 和 Service IP 位址的兩個次要範圍。手動設定 Pod IP 位址範圍時,可能難以判斷要設定的 IP 位址範圍大小。如果分配的 IP 位址不足,可能會限制叢集擴充及建立新 Pod。反之,如果 IP 位址分配過多,可能會浪費其他資源可用的寶貴 IP 位址空間。
GKE 自動 IPAM 可解決這個問題,並具有下列優點:
降低複雜度:自動 IPAM 會自動建立子網路,並為該子網路指派適當的 IP 位址範圍,藉此降低 IP 位址分配的複雜度。
自動調整 IP 位址範圍:啟用自動 IPAM 時,GKE 會先為節點和 Pod 設定較小的 IP 位址範圍。隨著叢集擴大或縮小,GKE 會使用多個不重疊的 IP 位址範圍,並在叢集層級定義這些範圍,動態新增或移除額外的 IP 位址範圍。這種自動化方法可在整個 GKE 叢集生命週期中,將 IP 位址健康狀態和效率最佳化。
簡化 IP 位址管理:自動 IPAM 可減少您為 GKE 叢集仔細規劃及管理 IP 位址分配作業的需求。
當現有節點集區擴大或縮減時,自動 IPAM 不會新增或移除已指派給現有節點集區的 IP 位址範圍。在叢集中建立新節點集區時,如果 IP 位址空間不足,自動 IPAM 會建立額外的子網路和 IP 位址範圍。
建立新叢集時,您可以啟用自動 IPAM。您也可以為現有叢集啟用或停用自動 IPAM。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
規定與限制
在 GKE 叢集中使用自動 IPAM 時,請瞭解下列限制:
- 叢集必須是虛擬私有雲原生叢集。 使用路由的叢集不支援自動 IPAM。
- 您無法在具有共用虛擬私有雲端的叢集中使用自動 IP 位址管理功能。
- 您可以在具備多重網路功能的叢集中啟用自動 IPAM。 不過,如果您使用多個網路介面建立新的節點集區,自動 IPAM 就無法運作。如要使用自動 IPAM,必須停用節點集區中的多重網路功能。
- 如果叢集採用 IPv4/IPv6 雙重堆疊網路,自動 IPAM 只會分配及管理叢集中的 IPv4 位址。
- 啟用自動 IPAM 後,任何節點集區 (包括預設節點集區) 的預設節點大小上限為 252 個節點,CIDR 區塊為 /24。
- 根據預設,在具有自動 IPAM 的叢集中,GKE 每個節點最多可有 48 個 Pod。
- 在採用自動 IPAM 的叢集中,您無法超額佈建 Pod CIDR 範圍。
建立具有自動 IPAM 的叢集
建立新叢集並啟用自動 IPAM 時,您可以讓 GKE 建立新的子網路,也可以指定要使用的現有子網路。如果指定現有子網路,請確認叢集有足夠的次要 IP 位址範圍。建立叢集並啟用自動 IPAM 時,您不必指定任何 IP 位址範圍。
如要建立啟用自動 IPAM 的叢集,並讓 GKE 建立新的子網路,請執行下列指令:
gcloud container clusters create CLUSTER_NAME \ --enable-auto-ipam \
將
CLUSTER_NAME
替換為叢集名稱。GKE 會執行下列操作:
- 為叢集建立新的子網路。
- 為叢集設定初始 IP 位址分配,並自動將新的節點和 Pod IP 位址分配給新的節點集區。
- 監控子網路和次要 IP 位址範圍的使用情形。
如要建立啟用自動 IPAM 功能的叢集,並指定自己的子網路,請按照「在現有子網路中建立叢集」一節中的操作說明,在指令中使用
--enable-auto-ipam
旗標。例如:gcloud container clusters create CLUSTER_NAME \ --enable-auto-ipam \ --subnetwork=SUBNET_NAME \
替換下列值:
CLUSTER_NAME
:叢集名稱。SUBNET_NAME
:現有子網路的名稱。子網路的主要 IP 位址範圍用於節點。子網路必須與叢集使用的區域位於相同地區。
更新現有叢集
您可以在現有叢集上啟用或停用自動 IPAM。
啟用自動 IPAM
如要在現有叢集上啟用自動 IPAM,請執行下列指令:
gcloud container clusters update CLUSTER_NAME \
--enable-auto-ipam
執行這項指令後,如果您建立新節點集區時沒有足夠的 IP 位址空間,GKE 會在叢集中建立及管理新的 IP 位址範圍。
停用 IP 位址自動管理功能
如要停用現有叢集的自動 IPAM,請執行下列指令:
gcloud container clusters update CLUSTER_NAME \
--disable-auto-ipam
將 CLUSTER_NAME
替換為叢集名稱。
在叢集中停用自動 IPAM 後:
- 系統會保留透過自動 IPAM 建立的任何子網路和次要 IP 位址範圍。刪除 GKE 叢集時,這些資源也會一併刪除。
- 建立新的節點集區時,GKE 會自動指派預設子網路和相關聯的次要 IP 位址範圍。
後續步驟
- 瞭解 GKE 中的 IP 位址分配。
- 瞭解如何建立虛擬私有雲原生叢集。