更新现有节点池的节点标签和污点


本页面介绍了如何动态更新 Google Kubernetes Engine (GKE) Standard 集群中现有节点池的节点标签和节点污点。

您还可以在 GKE Autopilot 或 Standard 集群中动态应用和更新网络标记。如需了解相关说明,请参阅使用网络标记将防火墙规则应用于节点

概览

节点污点标签位于 Kubernetes 节点的对象元数据中。标签用于在特定节点上调度 Pod,在这些节点上可以使用污点来引导 Pod 离开这些节点。

使用 Kubernetes Engine API,您可以对现有 GKE 节点池的节点标签和节点污点应用更新,而无需重新创建节点池或中断正在运行的工作负载。更新后的节点池配置会保留在 GKE 中,因此未来的节点池升级和节点池中的新节点预配将使用新的配置。

限制

使用 Kubernetes Engine API 动态更新节点池配置存在一些局限性:

更新节点标签

如需更新节点池的节点标签,请使用以下命令:

gcloud container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG …]

替换以下内容:

  • NODEPOOL_NAME:要更新的节点池的名称。
  • [NODE_LABEL,...]:所需的新节点标签(例如 label1=value1,label2=value2)。
  • CLUSTER_NAME:集群的名称。
  • REGION:集群的 Compute Engine 区域
  • ZONE:集群的 Compute Engine 可用区

更新节点污点

如需更新节点池的节点污点,请使用以下命令:

gcloud container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    [--cluster=CLUSTER_NAME] [--region=REGION | --zone=ZONE]
    [GCLOUD_WIDE_FLAG …]

替换以下内容:

  • NODEPOOL_NAME:要更新的节点池的名称。
  • [NODE_TAINT,...]:所需的新节点污点(例如 key1=val1:NoSchedule,key2=val2:PreferNoSchedule)。
  • CLUSTER_NAME:集群的名称。
  • REGION:集群的 Compute Engine 区域
  • ZONE:集群的 Compute Engine 可用区

后续步骤