本頁說明如何在 Google Kubernetes Engine (GKE) 叢集上啟用自動 IP 位址管理 (自動 IPAM)。啟用自動 IPAM 後,GKE 會自動在叢集中建立子網路,並管理節點和 Pod 的 IP 位址。對於 Service,GKE 預設會從 GKE 管理的範圍指派 IP 位址。
本頁內容適用於負責佈建及設定雲端資源、部署應用程式和服務,以及管理雲端部署作業網路的作業人員、雲端架構師、開發人員和網路工程師。如要進一步瞭解內容中提及的常見角色和範例工作,請參閱「常見的 GKE 使用者角色和工作」。 Google Cloud
總覽
傳統上,建立 GKE 叢集時,您會手動設定子網路,其中包含節點 IP 位址的主要範圍,以及 Pod 和 Service IP 位址的兩個次要範圍。手動設定 Pod IP 位址範圍時,可能難以判斷要設定的 IP 位址範圍大小。如果分配的 IP 位址不足,可能會限制叢集擴充及建立新 Pod。反之,如果過度分配 IP 位址,可能會浪費其他資源可用的寶貴 IP 位址空間。
GKE 自動 IPAM 可解決這個問題,並具有下列優點:
降低複雜度:自動 IPAM 會自動建立子網路,並為該子網路指派適當的 IP 位址範圍,藉此降低 IP 位址分配的複雜度。
自動調整 IP 位址範圍:啟用 IP 位址自動管理功能後,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
指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
規定與限制
在 GKE 叢集中使用自動 IPAM 時,請瞭解下列限制:
- 叢集必須是虛擬私有雲原生叢集。 使用路由的叢集不支援自動 IPAM。
- 您無法在具有共用虛擬私有雲端的叢集中使用自動 IP 位址管理功能。
- 使用多個網路介面建立新節點集區時,IP 位址自動管理功能無法運作。如要使用 IP 位址自動管理功能,請務必停用節點集區的多網路功能。
- 如果叢集採用 IPv4/IPv6 雙重堆疊網路,自動 IPAM 只會分配及管理叢集中的 IPv4 位址。
- 啟用自動 IPAM 後,任何節點集區 (包括預設節點集區) 的預設節點大小上限為 252 個節點,CIDR 區塊為 /24。
- 根據預設,在具有自動 IPAM 的叢集中,GKE 每個節點最多可有 48 個 Pod。
- 在採用自動 IPAM 的叢集中,您無法超額佈建 Pod CIDR 範圍。
建立具有自動 IPAM 的叢集
建立新叢集並啟用自動 IPAM 時,您可以讓 GKE 建立新的子網路,也可以指定要使用的現有子網路。
使用新子網路啟用自動 IPAM
如要建立叢集並自動 IPAM,以及讓 GKE 建立新的子網路,請使用 Google Cloud 控制台或 gcloud CLI。建立叢集並啟用自動 IPAM 時,您不必指定任何 IP 位址範圍。
控制台
如果是 Autopilot 叢集,請使用 gcloud CLI。如要使用標準叢集,請完成下列步驟:
- 在 Google Cloud 控制台中,前往「建立 Kubernetes 叢集」頁面。
- 在導覽窗格的「叢集」底下,按一下 [網路]。
- 在「叢集網路」部分,展開「虛擬私有雲」下方的「網路」下拉式清單,然後選取虛擬私有雲。
- 在「IP Management」(IP 管理) 區段的「Auto-IPAM」(自動 IPAM) 下方,按一下「Enabled」(已啟用)。
- 視需要設定其餘設定。
- 點選「建立」。
gcloud
gcloud container clusters create CLUSTER_NAME \
--enable-auto-ipam \
將 CLUSTER_NAME
替換為叢集名稱。
GKE 會執行下列作業:
- 為叢集建立新的子網路。
- 為叢集設定初始 IP 位址分配,並自動將新的節點和 Pod IP 位址分配給新的節點集區。
- 監控子網路和次要 IP 位址範圍的使用情形。
使用自己的子網路啟用自動 IPAM
建立叢集並指定現有子網路時,請確認有足夠的次要 IP 位址範圍可供叢集使用。
控制台
如果是 Autopilot 叢集,請使用 gcloud CLI。如要使用標準叢集,請完成下列步驟:
- 在 Google Cloud 控制台中,前往「建立 Kubernetes 叢集」頁面。
- 在導覽窗格的「叢集」底下,按一下 [網路]。
- 在「叢集網路」部分,展開「虛擬私有雲」下方的「網路」下拉式清單,然後選取虛擬私有雲。
- 在「IP Management」(IP 管理) 區段的「Auto-IPAM」(自動 IPAM) 下方,按一下「Enabled」(已啟用)。
- 在「VPC」區段中,展開「Node subnet」(節點子網路) 下拉式清單,然後選取要使用的子網路。
- 視需要設定其餘設定,然後按一下「建立」。
gcloud
如要建立啟用自動 IPAM 功能的叢集,並指定自己的子網路,請按照「在現有子網路中建立叢集」一節中的操作說明,在指令中使用 --enable-auto-ipam
旗標。例如:
gcloud container clusters create CLUSTER_NAME \
--enable-auto-ipam \
--subnetwork=SUBNET_NAME \
替換下列值:
CLUSTER_NAME
:叢集名稱。SUBNET_NAME
:現有子網路的名稱。
子網路的主要 IP 位址範圍用於節點。子網路必須與叢集使用的子網路位於相同區域。
更新現有叢集
您可以在現有叢集上啟用或停用自動 IPAM。
啟用自動 IPAM
如要在現有叢集上啟用自動 IPAM,請使用Google Cloud console 或 gcloud CLI。
控制台
如果是 Autopilot 叢集,請使用 gcloud CLI。如要使用標準叢集,請完成下列步驟:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
按一下要編輯的叢集旁的more_vert「Actions」(動作),然後按一下edit「Edit」(編輯)。
在「叢集詳細資料」頁面中,按一下「詳細資料」分頁標籤。
在「叢集網路」部分中,按一下「編輯自動 IPAM」
。在「編輯自動 IPAM」對話方塊中,選取「已啟用」。
按一下 [儲存變更]。
gcloud
執行下列指令:
gcloud container clusters update CLUSTER_NAME \
--enable-auto-ipam
更新叢集後,如果您建立新的節點集區時沒有足夠的 IP 位址空間,GKE 會在叢集中建立及管理新的 IP 位址範圍。
停用自動 IPAM
如要在現有叢集上停用自動 IPAM,請使用Google Cloud 控制台或 gcloud CLI。
控制台
如果是 Autopilot 叢集,請使用 gcloud CLI。如要使用標準叢集,請完成下列步驟:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
按一下要編輯的叢集旁的more_vert「Actions」(動作),然後按一下edit「Edit」(編輯)。
在「叢集詳細資料」頁面中,按一下「詳細資料」分頁標籤。
在「叢集網路」部分中,按一下「編輯自動 IPAM」
。在「編輯自動 IPAM」對話方塊中,選取「已停用」。
按一下 [儲存變更]。
gcloud
執行下列指令:
gcloud container clusters update CLUSTER_NAME \
--disable-auto-ipam
將 CLUSTER_NAME
替換為叢集名稱。
在叢集中停用自動 IPAM 後:
- 如果子網路和次要 IP 位址範圍是透過 IP 位址自動管理功能建立,GKE 會保留這些資源的擁有權。刪除 GKE 叢集時,這些資源也會一併刪除。
- 建立新的節點集區時,GKE 會自動指派預設子網路和相關聯的次要 IP 位址範圍。
後續步驟
- 瞭解 GKE 中的 IP 位址分配。
- 瞭解如何建立虛擬私有雲原生叢集。