自 Kubernetes 1.12 开始,TaintNodesByCondition
这个特性进入 beta 阶段,此时节点控制器自动根据 Node Condition 为节点创建对应的污点。调度器则不去检查 Node conditions,而是检查节点的污点,因此 Node Condition 不再直接影响到调度程序。用户通过为 Pod 添加容忍,可以选择性地忽略节点的某些问题(以 Node Condition 呈现的问题)。
TaintNodesByCondition
这个特性只会为节点添加 NoSchedule
效果的污点。TaintBasedEviction
(Kubernetes 1.13 开始默认生效)则为节点添加 NoExecute
效果的污点
自 Kubernetes 1.8 开始,DaemonSet Controller 自动为所有的 DaemonSet Pod 添加如下 NoSchedule
效果的容忍,以防止 DaemonSet 不能正常工作:
node.kubernetes.io/memory-pressure
node.kubernetes.io/disk-pressure
node.kubernetes.io/out-of-disk
(只对关键 Pod 生效)node.kubernetes.io/unschedulable
(不低于 Kubernetes 1.10)node.kubernetes.io/network-unavailable
(只对 host network 生效)