目录
一、说明:
node打上污点(可以想象成一个标签),pod如果不定义容忍这个污点,那么pod就不会被调度器分配到这个node
[root@master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master.host.com Ready master,node 18m v1.15.5
node1.host.com Ready node 39h v1.15.5
node2.host.com Ready node 39h v1.15.5
二、操作命令:
1. node打上污点方法 的三种类型以及介绍
kubectl taint nodes master.host.com key=value:NoSchedule
kubectl taint nodes master.host.com key=value:NoExecute
kubectl taint nodes master.host.com key=value:PreferNoSchedule
kubectl taint nodes master.host.com key=value:PreferNoSchedule
注意⚠️ : 为master设置的这个taint中,
node-role.kubernetes.io/master
为key
,value
为空,effect
为NoSchedule
如果输入命令时, 你丢掉了
=
符号, 写成了node-role.kubernetes.io/master:NoSchedule
, 会报error: at least one taint update is required
错误
NoSchedule: K8Snode添加这个effecf类型污点,新的不能容忍的pod不能再调度过来,但是老的运行在node上不受影响
NoExecute:K8Snode添加这个effecf类型污点,新的不能容忍的pod不能调度过来,老的pod也会被驱逐
PreferNoSchedule:pod会尝试将pod分配到该节点
2. node删除污点
kubectl taint nodes master.host.com key:NoSchedule-
3.查看taint
kubectl describe node node1