一、概述
污点(污点)和宽容(容忍)可以作用于节点和舱上,其目的是优化pod在集群间的调度,这跟节点亲和性类似,只不过它们作用的方式相反,具有污点的节点和豆荚是互斥关系,而具有节点亲和性关系的节点和豆荚是相吸的。另外还有可以给节点节点设置标签,通过给pod设置nodeSelector将pod调度到具有匹配标签的节点上。
污点和宽容相互配合,可以用来避免舱被分配到不合适的节点上。每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污染的,是不会被该节点接受的。如果将宽容应用于舱上,则表示这些pod可以(但不要求)被调度到具有相应的污点节点上。
二、节点节点设置污点和容忍
1,设置污染h5> <代码> NoSchedule:一定不能被调度
PreferNoSchedule:尽量不要调度
NoExecute:不仅不会调度,还会驱逐节点上已有的豆荚
kubectl污染节点node1 key1=value1: NoSchedule
kubectl污染节点node1 key1=value1: NoExecute
kubectl污染节点node1 key2=value2: NoSchedule 代码>
2,查看污点h5> <代码> kubectl描述节点node1 代码>
3,删除污染:
<代码> kubectl污染节点node1 key1: NoSchedule - #这里的关键可以不用指定值
kubectl污染节点node1 key1: NoExecute -
kubectl污染节点node1 key1 - #删除指定关键所有的效果
kubectl污染节点node1 key2: NoSchedule - 代码>
三,Pod设置污点和容忍
<代码> kubectl描述节点node1 代码>
3,删除污染:
<代码> kubectl污染节点node1 key1: NoSchedule - #这里的关键可以不用指定值 kubectl污染节点node1 key1: NoExecute - kubectl污染节点node1 key1 - #删除指定关键所有的效果 kubectl污染节点node1 key2: NoSchedule - 代码>
三,Pod设置污点和容忍
详细使用方法请参考
配置污点
<代码> kubectl污染节点172.16.8.100 node-role.kubernetes。io/etcd=true: NoExecute node-role.kubernetes.io/controlplane=true: NoSchedule 代码>