管理节点标签和污点

Kubernetes中,标签(Labels)和污点(Taints)可用于管理和调度集群中的资源。标签支持对Kubernetes对象(例如节点)进行标识和分类 ;污点可以使Pod排斥一类特定的节点,让这些Pod不被调度到某节点上。

建议已参见Kubernetes官方文档LabelsSelectors了解标签的构成与用法,参见TaintsTolerations了解污点和容忍的用法和Effect(NoSchedule、NoExecutePreferNoSchedule)。

创建与管理节点标签

标签可以对节点进行标识和分类。您也可以通过labelSelector筛选并操作具有特定标签的节点。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  3. 单击标签与污点管理,单击标签页签,选择待操作的节点,单击添加标签,然后按照页面指引完成标签名称和值的配置。

    添加完成后,在标签列表的标签列,您可以查看所有标签,并按需执行以下操作。

    • 单击标签,按照指定标签筛选带有对应标签的节点。

    • 单击标签的5.jpg,按照页面提示删除标签。

      说明

      某些Kubernetes原生标签无法删除。删除后系统会自动重新添加。

创建与管理节点污点

污点是节点的一种属性,用于控制某些Pod不被调度到某节点上。如需允许调度器将Pod调度到该节点上,还需声明对应的容忍。常见场景如下。

  • 专用节点:指定节点仅供特定用户或工作负载使用。

  • 特殊硬件节点:确保只有需要特殊硬件(例如GPU)的Pod被调度到这些节点上。

  • 基于污点的驱逐:通过为节点添加 NoExecute 的污点,并为待保留的Pod添加对应容忍,实现Pod的选择性驱逐。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  3. 单击标签与污点管理,单击污点页签,选择待操作的节点,单击添加污点,然后按照页面指引完成污点名称、值和Effect的配置。

    关于污点的格式和Effect,请参见污点和容忍度

    配置项

    说明

    名称

    长度为1~63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,中间可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

    如果指定前缀,必须是DNS子域,即一系列由英文半角句号(.)分隔的DNS标签,不超过253个字符,以正斜线(/)结尾。

    可以为空。不超过63个字符,必须以字母、数字或字符[a-z0-9A-Z]开头和结尾,可包含字母、数字、短划线(-)、下划线(_)、英文半角句号(.)。

    Effect

    • NoSchedule:如果污点中存在至少一个Effect值为NoSchedule的污点,则系统不会将Pod分配到该节点。

    • NoExecute:不仅阻止新Pod被调度到该节点上,还会驱逐存量的不兼容的Pod。

    • PreferNoSchedule:尽量避免将Pod调度到不能容忍其污点的节点上,但不强制。

    添加完成后,在污点列表的污点列,您可以查看所有污点,并按需执行以下操作。

    • 单击污点,按照指定污点筛选带有对应污点的节点。

    • 单击污点的5.jpg,按照页面提示删除污点。

相关文档

  • 您也可以在节点池维度统一管理节点的标签和污点。具体操作,请参见创建和管理节点池

  • 通过节点LabelnodeSelector可以将应用调度到指定节点上,请参见调度应用至指定节点

  • ACK支持Worker节点的批量运维,例如安全更新操作系统内核,安装自定义的监控、安全、审计软件包等,请参见批量运维节点