本文說明如何使用 GKE API,更新 Google Kubernetes Engine (GKE) Standard 叢集中現有節點集區的 Kubernetes 節點標籤和節點汙染。Kubernetes 節點標籤與 GKE 叢集和節點標籤不同。
節點 taint 和標籤位於 Kubernetes 節點的物件中繼資料中。Kubernetes 標籤用於在特定節點上排程 Pod。相較之下,taint 可用於引導 Pod 避開特定節點。詳情請參閱「在 GKE 中設定工作負載分離」。
使用 GKE API 時,您可以更新現有 GKE 節點集區的 Kubernetes 節點標籤和節點 taint,不必重新建立節點集區,也不會中斷執行中的工作負載。更新後的節點集區設定會保留在 GKE 中,因此日後的節點集區升級作業,以及在節點集區中佈建的新節點,都會使用新的設定。
如要進一步瞭解變更對 GKE 叢集運作的影響,請參閱「管理叢集生命週期變更,盡量減少中斷」。如要瞭解特定變更的詳細資訊,請參閱「GKE 叢集的變更類型」一節。
標籤語法
Kubernetes 標籤必須符合下列所有規定:
- 標籤鍵和值必須符合語法和字元集規定。
- 在
--node-labelsgcloud CLI 旗標中指定的值長度不得超過 1,024 個字元。
事前準備
開始之前,請確認您已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update指令,取得最新版本。較舊的 gcloud CLI 版本可能不支援執行本文件中的指令。
更新節點標籤
如要更新節點集區的節點標籤,請使用下列指令:
gcloud container node-pools update NODEPOOL_NAME \
--node-labels=[NODE_LABEL,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
更改下列內容:
NODEPOOL_NAME:要更新的節點集區名稱。[NODE_LABEL,...]:新的節點標籤 (例如label1=value1,label2=value2)。CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。如果是地區叢集,請提供區域;如果是區域叢集,請提供可用區。
更新節點 taint
如要更新節點集區的節點汙點,請使用下列指令:
gcloud container node-pools update NODEPOOL_NAME \
--node-taints=[NODE_TAINT,...] \
--cluster=CLUSTER_NAME
--location=CONTROL_PLANE_LOCATION
[GCLOUD_WIDE_FLAG …]
更改下列內容:
NODEPOOL_NAME:要更新的節點集區名稱。[NODE_TAINT,...]:新的節點汙點 (例如key1=val1:NoSchedule,key2=val2:PreferNoSchedule)。CLUSTER_NAME:叢集名稱。CONTROL_PLANE_LOCATION:叢集控制層的 Compute Engine 位置。為區域叢集提供區域,或為區域叢集提供可用區。