NodeAffinity节点亲和性,是Pod上定义的一种属性,使Pod能够按我们的要求调度到某个Node上。而Taints则恰恰相反,它可以让Node拒绝运行Pod,甚至驱逐Pod。
Taints(污点)是Node的一个属性,设置了Taints(污点)后,Kubernetes是不会将Pod调度到这个Node上的。
Kubernetes给Pod设置了个属性Tolerations(容忍),只要Pod能够容忍Node上的污点,那么Kubernetes就会忽略Node上的污点,就能够把Pod调度过去。
因此 Taints(污点)通常与Tolerations(容忍)配合使用。
- 设置污点
语法:
kubectl taint NODE NAME KEY=VAL:TAINT_EFFECT
其中[effect] 可取值:
[ NoSchedule | PreferNoSchedule | NoExecute ]
NoSchedule :一定不能被调度。
PreferNoSchedule:尽量不要调度。
NoExecute:不仅不会调度,还会驱逐Node上已有的Pod。
实例:
[root@bogon shell]# kubectl taint node kafka03 test=kafka03:NoSchedule
node/kafka03 tainted
- 去除污点
去除指定key及其ef