Kubernetes-Taint、Toleartions

Taint、Tolerations

Taint在一类服务器上打上污点,让不能容忍这个污点的Pod不能部署在打了污点的服务器上。

查看节点污点情况
污点值有三个

  • NoSchedule: # 一定不被调度
  • PreferNoSchedule: # 尽量不被调度
  • NoExecute: # 不会调度,并且驱逐Node已有的Pod
$ kubectl describe node k8s-master|grep Taint
Taints:             master-test=test:PreferNoSchedule

为节点添加污点

$ kubectl taint node [node] key=value:污点三个值

移除污点

$ kubectl taint nodes k8s-node1 key:NoExecute-

节点上有多个Taint,每个Taint都需要容忍Pod才能部署上去

tolerations:
- effect: NoSchedule
  key: test1
  operator: Exists    # 匹配到key为test1的污点就能容忍
tolerations:
- operator: Exists    # 容忍所有的污点
tolerations:
- operator: Exists
  key: test1          # 只要污点存在这个key,就能容忍

tolerationSeconds: 60 # 需要和NoExecute一起配置,Pod只能在这个节点停留60秒,之后还是会被清除。当node节点不正常时,master节点会将node节点打上NoSchdule和NoExecute两个污点,导致Pod全部被删除,这个参数就避免Pod因为网络波动导致Pod被清除

posted @ 2021-09-07 13:31  Cai_HL  阅读(55)  评论(0编辑  收藏  举报
>