Taint和Toleration

节点亲和性,是pod 的一种属性(偏好或硬性要求),它使pod被吸引到—类特定的节点。Taint则相反,它使节点能够排斥一类特定的pod

Taint和toleration相互配合,可以用来避免pod被分配到不合适的节点上。每个节点上都可以应用一个或多个taint,这表示对于那些不能容忍这些taint的pod,是不会被该节点接受的。如果将toleration应用于pod上,则表示这些pod可以(但不要求)被调度到具有匹配 taint的节点上
**

污点(Taint)

污点的组成

使用`kubectl taint`命令可以给某个Node节点设置污点,Node被设置上污点之后就和pod之间存在了一种相斥的关系,可以让Node拒绝Pod的调度执行,甚至将Node已经存在的Pod驱逐出去

每个污点的组成如下:
key=value:effect
image.png

容忍(Tolerations)

设置了污点的Node将根据taint的effect: NoSchedule、PreferNoSchedule、NoExecute和Pod 之间产生互斥的关系,Pod将在一定程度上不会被调度到Node上。但我们可以在Pod 上设置容忍 (Toleration ),意思是设置了容忍的Pod将可以容忍污点的存在,可以被调度到存在污点的Node上。
**
image.png
image.png