在Kubernetes中,标签(Labels)和污点(Taints)可用于管理和调度集群中的资源。标签支持对Kubernetes对象(例如节点)进行标识和分类 ;污点可以使Pod排斥一类特定的节点,让这些Pod不被调度到某节点上。
建议已参见Kubernetes官方文档Labels和Selectors了解标签的构成与用法,参见Taints和Tolerations了解污点和容忍的用法和Effect(NoSchedule、NoExecute和PreferNoSchedule)。
创建与管理节点标签
标签可以对节点进行标识和分类。您也可以通过labelSelector筛选并操作具有特定标签的节点。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
单击标签与污点管理,单击标签页签,选择待操作的节点,单击添加标签,然后按照页面指引完成标签名称和值的配置。
添加完成后,在标签列表的标签列,您可以查看所有标签,并按需执行以下操作。
单击标签,按照指定标签筛选带有对应标签的节点。
单击标签的
,按照页面提示删除标签。
说明某些Kubernetes原生标签无法删除。删除后系统会自动重新添加。
创建与管理节点污点
污点是节点的一种属性,用于控制某些Pod不被调度到某节点上。如需允许调度器将Pod调度到该节点上,还需声明对应的容忍。常见场景如下。
专用节点:指定节点仅供特定用户或工作负载使用。
特殊硬件节点:确保只有需要特殊硬件(例如GPU)的Pod被调度到这些节点上。
基于污点的驱逐:通过为节点添加
NoExecute
的污点,并为待保留的Pod添加对应容忍,实现Pod的选择性驱逐。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
单击标签与污点管理,单击污点页签,选择待操作的节点,单击添加污点,然后按照页面指引完成污点名称、值和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调度到不能容忍其污点的节点上,但不强制。
添加完成后,在污点列表的污点列,您可以查看所有污点,并按需执行以下操作。
单击污点,按照指定污点筛选带有对应污点的节点。
单击污点的
,按照页面提示删除污点。