K8S taint(污点)和tolerations(污点容忍)

一、Taint(污点)

1.1概念

节点亲和性是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点 。 这可能出于一种偏好,也可能是硬性要求。 Taint(污点)则相反,它使节点能够排斥一类特定的 Pod。

1.2设置污点

kubectl taint nodes [Node Name] key=value:[effect]

effect可取三种值:

NoSchedule			#一定不能被调度【常用】
PreferNoShedule		#尽量不要调度
NoExecute			#不仅不会调度,而且还会驱逐Node上所有的Pod

例如:

kubectl taint node k8smaster type=dev:NoSchedule

给k8smaster节点增加一个污点,它的键名是type,键值是 dev,效果是 NoSchedule。 这表示只有拥有和这个污点相匹配的容忍度的 Pod 才能够被分配到 这个节点。

取消污点

kubectl taint nodes [Node Name] key:[effect]-

二、tolerations(污点容忍)

2.1概念

容忍度能够让打有污点的节点可以部署到与该污点相匹配的容忍度的Pod

一个容忍度和一个污点相“匹配”是指它们有一样的键名和效果,并且:

如果 operator 是 Exists (此时容忍度不能指定 value)
如果 operator 是 Equal ,则它们的 value 应该相等

2.2示例

在这里插入图片描述

tolerations:
- key: "type"
  operator: "Exists"
  effect: "NoSchedule"

表示该Pod可以调度到key等于type,且动作为NoSchedule的节点上

猜你喜欢

转载自blog.csdn.net/anqixiang/article/details/108699769