Kubernetes污点(污染)与容忍(纵容)

  

一、概述

  

污点(污点)和宽容(容忍)可以作用于节点和舱上,其目的是优化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污染节点172.16.8.100 node-role.kubernetes。io/etcd=true: NoExecute node-role.kubernetes.io/controlplane=true: NoSchedule  
  

 Kubernetes污点(污染)与容忍(纵容)

Kubernetes污点(污染)与容忍(纵容)