设置组件实例容忍度策略
容器部署的组件,容忍度(Toleration)允许调度器将Pod调度至带有对应污点的节点上。 容忍度需要和节点污点相互配合,每个节点上都可以拥有一个或多个污点,对于未设置容忍度的Pod,调度器会根据节点上的污点效果进行选择性调度,可以用来避免Pod被分配到不合适的节点上。
Kubernetes会自动给Pod添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的容忍度,且配置容忍时间窗为300s。这些默认容忍度策略表示当Pod运行的节点被打上这两个污点之一时,可以在5分钟内依旧保持运行在该节点上。
DaemonSet中的Pod被创建时,针对以上污点自动添加的容忍度将不会指定容忍时间窗。即表示节点存在上述污点时,DaemonSet中的Pod一直不会被驱逐。
常用污点说明,请参考表2。
污点 |
说明 |
---|---|
node.kubernetes.io/not-ready |
节点未就绪。 |
node.kubernetes.io/unreachable |
节点控制器访问不到节点。 |
node.kubernetes.io/memory-pressure |
节点存在内存压力。 |
node.kubernetes.io/network-unavailable |
节点网络不可用。 |
node.kubernetes.io/unschedulable |
节点不可调度。 |
前提条件
待操作集群节点已增加污点,请参考管理节点污点(Taint)。
设置组件实例容忍度策略
- 选择“高级配置 > 容忍策略”。
- 单击“新增容忍策略”,参考下表添加污点容忍策略。
参数名称
参数说明
污点键
输入节点的污点键。
操作符
- Equal:设置此操作符表示准确匹配指定污点键(必填)和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。
- Exists:设置此操作符表示匹配存在指定污点键的节点,此时容忍度不能指定污点值。若不填写污点键则可以容忍全部污点。
污点值
“操作符”为Equal时,需要填写污点值。
污点策略
- 全部:表示匹配所有污点效果。
- NoSchedule:表示匹配污点效果为NoSchedule的污点。
- PreferNoSchedule:表示匹配污点效果为PreferNoSchedule的污点。
- NoExecute:表示匹配污点效果为NoExecute的污点。
容忍时间窗(s)
当“污点策略”为NoExecute时支持配置。
在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。