本頁面說明如何動態更新 Google Kubernetes Engine (GKE) Standard 叢集中現有節點集區的節點標籤和節點汙點。
您也可以在 GKE Autopilot 或 Standard 叢集中,動態套用及更新網路標記。如需操作說明,請參閱使用網路標記將防火牆規則套用至節點。
總覽
節點 taint 和標籤位於 Kubernetes 節點的物件中繼資料中。標籤用於在特定節點上排程 Pod,而 taint 則用於引導 Pod 避開這些節點。
使用 GKE API,您可以在現有 GKE 節點集區中套用節點標籤和節點 taint 的更新,不必重新建立節點集區或中斷執行中的工作負載。更新後的節點集區設定會保留在 GKE 中,因此日後節點集區升級和節點集區中的新節點佈建作業,都會使用新的設定。
限制
使用 GKE API 動態更新節點集區設定時,須注意以下限制:
- 節點集區的版本必須為 1.19.7-gke.1500 以上。
- 如要為已啟用叢集自動配置器的現有節點集區套用節點標籤或節點汙點更新,叢集控制層的版本必須為 1.23.4-gke.300 以上。如果是較舊版本的叢集,可以採取下列解決方法:停用節點集區的自動調度功能,然後更新節點標籤和/或汙點。套用更新後,請重新啟用自動調度資源。
更新節點標籤
如要更新節點集區的節點標籤,請使用下列指令:
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 位置。為地區叢集提供地區,或為區域叢集提供區域。
後續步驟
- 瞭解如何使用節點 taint 控制排程。
- 瞭解網路標記。
- 瞭解標籤