管理污点
更新时间:2025-04-09
污点是节点的一种属性,用于控制某些Pod不被调度到某节点上。如需允许调度器将Pod调度到该节点上,还需声明对应的容忍。常见场景如下:
- 专用节点:指定节点仅供特定用户或工作负载使用。
- 特殊硬件节点:确保只有需要特殊硬件(例如GPU)的Pod被调度到这些节点上。
- 基于污点的驱逐:通过为节点添加 NoExecute 的污点,并为待保留的Pod添加对应容忍,实现Pod的选择性驱逐。
本文介绍如何在容器引擎 CCE 控制台上管理污点,包括批量新增污点和快速删除污点。
批量添加污点
前提条件
- 您已成功创建一个 Kubernetes 集群,详情请见创建集群。
操作步骤
- 登录百度智能云官网,并进入容器引擎 CCE 管理控制台。
- 单击左侧导航栏中的 集群管理 > 集群列表 ,在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击 节点 > 标签与污点管理 进入标签与污点管理页面。
- 在标签与污点管理页面批量选择节点,单击 编辑污点 。
- 选择单个节点,可管理该节点所有污点。
- 节点污点和 Pod 容忍共同作用。节点设置污点后,可避免 Pod 调度到节点上,或者将 Pod 从节点驱逐。除非 Pod 容忍能够节点污点相匹配。
- 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的 Pod,是不会被该节点接受的。
- 在弹出的“编辑标签”框中设置污点键、值和 Effect,更多信息请见污点和容忍说明。
- 单击“确定”按钮,完成批量添加污点。
删除污点
前提条件
- 您已成功创建一个 Kubernetes 集群,详情请见创建集群。
操作步骤
- 登录百度智能云官网,并进入容器引擎 CCE 管理控制台。
- 单击左侧导航栏中的 集群管理 > 集群列表 ,在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击 Worker > 标签与污点管理 进入标签与污点管理页面。
- 在标签与污点管理页面选择某个节点,单击污点上的删除图标。
- 在弹出的删除确认框中单击“确定”按钮,完成快速删除污点。
系统污点说明
当节点出现某些问题时,Kubernetes会自动给节点添加一个污点,当前内置的污点包括:
- node.kubernetes.io/not-ready:节点未准备好。这相当于节点状况 Ready 的值为 "False"。
- node.kubernetes.io/unreachable:节点控制器访问不到节点。这相当于节点状况 Ready 的值为 "Unknown"。
- node.kubernetes.io/memory-pressure:节点存在内存压力。
- node.kubernetes.io/disk-pressure:节点存在磁盘压力。
- node.kubernetes.io/pid-pressure:节点存在 PID 压力。
- node.kubernetes.io/network-unavailable:节点网络不可用。
- node.kubernetes.io/unschedulable:节点不可调度。
- node.cloudprovider.kubernetes.io/uninitialized:如果 kubelet 启动时指定了一个“外部”云平台驱动, 它将给当前节点添加一个污点将其标志为不可用。在 cloud-controller-manager 的一个控制器初始化这个节点后,kubelet 将删除这个污点。