• - -

作者:[SRE運維博客](https://www.cnsre.cn/ )

博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)

文章地址:??https://www.cnsre.cn/posts/211129946481/??

相關話題:??https://www.cnsre.cn/kubernetes/??

  • - -

Taint 和 Toleration(污點和容忍)

在 ??k8s?? 集群中,節點親和性 ??NodeAffinity?? 是一種 ??Pod?? 上定義的屬性,能夠讓 ??Pod?? 可以按找我們的需求調度到指定節點上,而 ??Taints?? (污點) 則于??NodeAffinity?? (節點親和性)是相反的,它是一種 ??Node?? 上定義的屬性,可以讓 ??Pod?? 不被調度到帶污點的節點上,甚至會對帶污點節點上已有的 ??Pod?? 進行驅逐。對應的 ??k8s?? 可以給 ??Pod?? 設置 ??Tolerations??(容忍) 讓 ??Pod?? 能夠對有污點的節點設置容忍,將 ??Pod?? 調度到該節點。 ??Taints?? 一般是配合 ??Tolerations?? 使用的。

為 node 設置污點和容忍

NoSchedule: 一定不能被調度

PreferNoSchedule: 盡量不要調度

NoExecute: 不僅不會調度, 還會驅逐Node上已有的Pod

為 node1 設置 taint:

kubectl taint nodes k8s-node1 key1=value1:NoSchedule

kubectl taint nodes k8s-node1 key1=value1:NoExecute

kubectl taint nodes k8s-node1 key2=value2:NoSchedule

查看 node1 上的 taint:

kubectl describe nodes k8s-node1 |grep Taint

刪除上面的 taint:

kubectl taint nodes k8s-node1 key1:NoSchedule-

kubectl taint nodes k8s-node1 key1:NoExecute-

kubectl taint nodes k8s-node1 key2:NoSchedule-

kubectl taint nodes k8s-node1 key1- # 刪除指定key所有的effect

為 pod 設置 toleration

只要在 pod 的 spec 中設置 tolerations 字段即可,可以有多個 ??key??,如下所示:

tolerations:            # containers同級

- key: "key1" # 能容忍的污點key

operator: "Equal" # Equal等于表示key=value , Exists不等于,表示當值不等于下面value正常

value: "value1" # 值

effect: "NoSchedule" # effect策略,可以設置為 NoSchedule、PreferNoSchedule 或 NoExecute

- key: "key1"

operator: "Equal"

value: "value1"

effect: "NoExecute"

- key: "node.alpha.kubernetes.io/unreachable"

operator: "Exists"

effect: "NoExecute"

tolerationSeconds: 4000
  • ??tolerations?? 和 ??containers?? 同級。
  • ??key?? 能容忍的污點 ??key??。
  • ??operator?? ??Equal?? 等于表示 ??key=value?? , ??Exists?? 不等于,表示當值不等于下面 ??value?? 正常
  • ??value?? 可以設置為 ??NoSchedule??、??PreferNoSchedule?? 或 ??NoExecute??。
  • ??effect?? ??effect?? 策略
  • ??tolerationSeconds?? 是當 pod 需要被驅逐時,可以繼續在 node 上運行的時間。

具體的使用方法請參考??官方文檔??。

  • - -

作者:[SRE運維博客](https://www.cnsre.cn/ )

博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)

文章地址:??https://www.cnsre.cn/posts/211129946481/??

相關話題:??https://www.cnsre.cn/tags/kubernetes/??

  • - -