本頁面說明如何自動調整 Standard Google Kubernetes Engine (GKE) 叢集的規模。如要瞭解叢集自動調度資源的運作方式,請參閱「叢集自動調度資源」。
使用 Autopilot 叢集時,您不必擔心佈建節點或管理節點集區,因為節點集區會透過自動佈建節點自動佈建,並自動調整大小,以滿足工作負載的需求。
使用叢集自動配置器
以下各節說明如何使用叢集自動配置器。
建立啟用自動調度資源功能的叢集
您可以使用 Google Cloud CLI 或 Google Cloud 控制台建立啟用自動調度的叢集。
gcloud
如要建立啟用自動調度資源功能的叢集,請使用 --enable-autoscaling 旗標,並指定 --min-nodes 和 --max-nodes:
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--location=CONTROL_PLANE_LOCATION
更改下列內容:
CLUSTER_NAME:要建立的叢集名稱。NUM_NODES:要在每個位置建立的節點數量。MIN_NODES:每個可用區中,指定節點集區自動調度的節點數量下限。如要在 GKE 1.24 以上版本中,為整個節點集區指定最少節點數,請使用--total-min-nodes。旗標--total-min-nodes和--total-max-nodes與旗標--min-nodes和--max-nodes互斥。MAX_NODES:每個可用區中,指定節點集區可自動調度的節點數量上限。如要在 GKE 1.24 以上版本中,為整個節點集區指定節點數量上限,請使用--total-max-nodes。--total-min-nodes和--total-max-nodes旗標與--min-nodes和--max-nodes旗標互斥。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是區域叢集,請提供區域;如果是可用區叢集,請提供可用區。
範例:建立叢集並啟用節點自動調度資源功能,以及設定節點數量下限和上限
下列指令會建立 90 個節點的叢集,或是在區域中 3 個可用區的每個可用區中建立 30 個節點。節點自動調度功能已啟用,並根據叢集負載調整節點數量。叢集自動調度器可將預設節點集區的大小縮減為 15 個節點,或將節點集區擴增為每個區域最多 50 個節點。
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--location=us-central1
範例:建立叢集並啟用節點自動調度資源功能,以及設定節點總數
下列指令會建立 30 個節點的叢集,也就是區域中 3 個可用區各 10 個節點。節點自動調度功能已啟用,並根據叢集負載調整節點數量。在本例中,無論叢集是否分散在不同可用區,叢集總大小都介於 10 到 60 個節點之間。
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--location us-central1 \
--total-min-nodes 10 --total-max-nodes 60
控制台
如要建立新叢集,並為預設節點集區啟用自動調整功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「Create a Kubernetes cluster」(建立 Kubernetes 叢集) 頁面。
視需求設定叢集。
在導覽窗格的「Node Pools」(節點集區) 下方,按一下「default-pool」。
勾選「啟用自動調度資源」核取方塊。
視需要變更「節點數量下限」和「節點數量上限」欄位的值。
點選「建立」。
新增具有自動調度資源功能的節點集區
您可以使用 gcloud CLI 或 Google Cloud 控制台,建立啟用自動調整規模功能的節點集區。
gcloud
如要將具備自動調度資源功能的節點集區新增至現有叢集,請使用下列指令:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
更改下列內容:
POOL_NAME:所需節點集區的名稱。CLUSTER_NAME:節點集區建立所在的叢集名稱。MIN_NODES:每個可用區中,指定節點集區自動調度的節點數量下限。如要在 GKE 1.24 以上版本中,為整個節點集區指定最少節點數,請使用--total-min-nodes。旗標--total-min-nodes和--total-max-nodes與旗標--min-nodes和--max-nodes互斥。MAX_NODES:每個可用區中,指定節點集區可自動調度的節點數量上限。如要在 GKE 1.24 以上版本中,為整個節點集區指定節點數量上限,請使用--total-max-nodes。--total-min-nodes和--total-max-nodes旗標與--min-nodes和--max-nodes旗標互斥。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是區域叢集,請提供區域;如果是可用區叢集,請提供可用區。
範例:新增已啟用節點自動調度資源的節點集區
下列指令會建立節點自動調度資源功能,將節點集區調度至最多 5 個節點,最少 1 個節點:
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--location us-central1-c
控制台
如要將具備自動調度資源功能的節點集區新增至現有叢集,請按照下列步驟操作:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下「Nodes」(節點) 分頁標籤。
按一下「建立由使用者管理的節點集區」add_box。
視需要設定節點集區。
在「大小」下方,勾選「啟用自動調度資源」核取方塊。
視需要變更「節點數量下限」和「節點數量上限」欄位的值。
點選「建立」。
啟用現有節點集區的自動調度資源功能
您可以使用 gcloud CLI 或 Google Cloud 控制台,為現有節點集區啟用自動調度功能。
gcloud
如要為現有節點集區啟用自動調度資源功能,請使用下列指令:
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--location=CONTROL_PLANE_LOCATION
更改下列內容:
CLUSTER_NAME:要更新的叢集名稱。POOL_NAME:所需節點集區的名稱。如果只有一個節點集區,請提供default-pool做為值。MIN_NODES:每個可用區中,指定節點集區自動調度的節點數量下限。如要在 GKE 1.24 以上版本中,為整個節點集區指定最少節點數,請使用--total-min-nodes。旗標--total-min-nodes和--total-max-nodes與旗標--min-nodes和--max-nodes互斥。MAX_NODES:每個可用區中,指定節點集區可自動調度的節點數量上限。如要在 GKE 1.24 以上版本中,為整個節點集區指定節點數量上限,請使用--total-max-nodes。--total-min-nodes和--total-max-nodes旗標與--min-nodes和--max-nodes旗標互斥。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是區域叢集,請提供區域;如果是可用區叢集,請提供可用區。
控制台
如要為現有節點集區啟用自動調度資源功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下「Nodes」(節點) 分頁標籤。
在「Node Pools」(節點集區) 下方,按一下要修改的節點集區名稱,然後點選 edit「Edit」(編輯)。
在「大小」下方,勾選「啟用自動調度資源」核取方塊。
視需要變更「節點數量下限」和「節點數量上限」欄位的值。
按一下 [儲存]。
確認現有節點集區已啟用自動調度資源功能
使用 Google Cloud CLI 或 Google Cloud 控制台,確認叢集是否使用自動調度資源功能。
gcloud
說明叢集中的節點集區:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
更改下列內容:
NODE_POOL_NAME:您選擇的新節點集區名稱。CLUSTER_NAME:叢集名稱。
如果已啟用自動調度資源功能,輸出結果會與下列內容相似:
autoscaling:
enabled: true
控制台
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下要驗證的叢集名稱。
按一下「Nodes」(節點) 分頁標籤。
在「Node Pools」(節點集區) 下方,確認節點集區
Autoscalling狀態。
建立節點集區,優先最佳化未使用的預留項目
建立節點集區時,您可以使用 --location-policy=ANY 旗標,指示叢集自動調度器優先使用未使用的預留項目:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location-policy=ANY
更改下列內容:
POOL_NAME:您選擇的新節點集區名稱。CLUSTER_NAME:叢集名稱。
停用現有節點集區的自動調度資源功能
您可以使用 gcloud CLI 或 Google Cloud 控制台,停用現有節點集區的自動調度功能。
gcloud
如要為特定節點集區停用自動調度資源功能,請使用 --no-enable-autoscaling 旗標:
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--location=CONTROL_PLANE_LOCATION
更改下列內容:
CLUSTER_NAME:要更新的叢集名稱。POOL_NAME:所需節點集區的名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是區域叢集,請提供區域;如果是可用區叢集,請提供可用區。
叢集大小會固定為叢集目前的預設節點集區大小,您可以手動更新。
控制台
如要為特定節點集區停用自動調度資源功能,請按照下列步驟操作:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下「Nodes」(節點) 分頁標籤。
在「Node Pools」(節點集區) 下方,按一下要修改的節點集區名稱,然後點選「編輯」edit。
在「大小」下方,取消勾選「啟用自動調度資源」核取方塊。
按一下 [儲存]。
調整節點集區的大小
如果叢集已啟用自動調度資源功能,叢集自動配置器會根據最小值 (--min-nodes) 和最大值 (--max-nodes) 或最小總大小 (--total-min-nodes) 和最大總大小 (--total-max-nodes) 指定的界限,自動調整節點集區大小。這些旗標互斥。您無法變更這些值來手動調整節點集區大小。
如要手動調整已啟用自動調度資源功能的叢集節點集區大小,請執行下列操作:
禁止在所選節點上排定 Pod
視用途而定,您可以使用 startup 或 status taint,防止 Pod 在所選節點上排程。
這項功能適用於 GKE 1.28 以上版本。
啟動汙點
如果節點必須先完成某項作業,才能執行任何 Pod,請使用 startup taint。舉例來說,Pod 應等到節點上的驅動程式安裝完成後再執行。
叢集自動配置器會將標示 startup 汙點的節點視為未就緒,但在向上擴充邏輯中會將其納入考量,假設這些節點很快就會就緒。
啟動汙點定義為前置字元為 startup-taint.cluster-autoscaler.kubernetes.io/ 的所有汙點
狀態汙點
如果 GKE 不應使用特定節點執行 Pod,請使用 status taint。
叢集自動配置器會將標示 status 汙點的節點視為就緒,但在擴充邏輯中會忽略這些節點。即使受汙染的節點已準備就緒,也不應執行任何 Pod。如果 Pod 需要更多資源,GKE 會擴大叢集,並忽略遭汙染的節點。
狀態汙點定義為前置字元為 status-taint.cluster-autoscaler.kubernetes.io/ 的所有汙點
忽略 taint
忽略汙點定義為前置字串為 ignore-taint.cluster-autoscaler.kubernetes.io/ 的所有汙點
疑難排解
如需疑難排解建議,請參閱下列頁面:
後續步驟
- 進一步瞭解叢集自動調度器。
- 請參閱節點集區自動建立功能總覽。
- 瞭解如何設定節點集區自動建立功能。
- 瞭解叢集自動調度器可見度。
- 瞭解如何調整叢集大小。