本頁面說明如何自動調度 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-central
範例:建立啟用節點自動調度資源功能的叢集,並設定節點總數
下列指令會建立 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 控制台中,前往「建立 Kubernetes 叢集」頁面。
視需求設定叢集。
在導覽窗格的「節點集區」下方,按一下「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」頁面。
在叢集清單中,按一下您要修改的叢集名稱。
按一下 add_box「Add Node Pool」(新增節點集區)。
視需要設定節點集區。
在「Size」(大小) 下方,勾選「Enable autoscaling」(啟用自動調度資源) 核取方塊。
視需要變更「節點數量下限」和「節點數量上限」欄位的值。
點選「建立」。
啟用現有節點集區的自動調度資源功能
您可以使用 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」(編輯)。
在「Size」(大小) 下方,勾選「Enable autoscaling」(啟用自動調度資源) 核取方塊。
視需要變更「節點數量下限」和「節點數量上限」欄位的值。
按一下 [儲存]。
確認現有節點集區的自動調度資源功能已啟用
您可以使用 Google Cloud CLI 或 Google Cloud 控制台,確認叢集是否使用自動調度資源功能。
gcloud
說明叢集中的節點集區:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
更改下列內容:
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。
在「Size」(大小) 下方,取消勾選「Enable autoscaling」(啟用自動調度資源) 核取方塊。
按一下 [儲存]。
調整節點集區的大小
如果叢集已啟用自動調度資源功能,叢集自動配置器會根據您指定的下限 (--min-nodes
) 和上限 (--max-nodes
) 值,或總下限 (--total-min-nodes
) 和總上限 (--total-max-nodes
),自動調整節點集區大小。這些標記互斥。您無法變更這些值來手動調整節點集區大小。
如要手動調整叢集中已啟用自動調度資源功能的節點集區大小,請執行下列操作:
防止 Pod 在所選節點上執行
視用途而定,您可以使用 startup
或 status
taint,防止 Pod 排程到所選節點。
這項功能適用於 GKE 1.28 以上版本。
啟動 taint
如果節點必須先完成某項作業,才能執行任何 Pod,請使用 startup
taint。舉例來說,在節點上安裝驅動程式完成前,Pod 不應執行。
叢集自動配置器會將標示 startup
汙點的節點視為未就緒,但在擴充邏輯中會將其納入考量,假設這些節點很快就會就緒。
啟動汙點定義為前置字元為 startup-taint.cluster-autoscaler.kubernetes.io/
的所有汙點
狀態汙染
如果 GKE 不應使用特定節點執行 Pod,請使用status
污點。
叢集自動配置器會將標記 status
污點的節點視為就緒,但在擴充邏輯中會忽略這些節點。即使受汙染的節點已準備就緒,也不應執行任何 Pod。如果 Pod 需要更多資源,GKE 會擴充叢集,並忽略遭汙染的節點。
狀態汙點是指前置字串為 status-taint.cluster-autoscaler.kubernetes.io/
的所有汙點
忽略 taint
忽略汙點定義為前置字串為 ignore-taint.cluster-autoscaler.kubernetes.io/
的所有汙點
疑難排解
如需疑難排解建議,請參閱下列頁面: