k8s-master增加和删除污点

2024-01-08 09:51:45

使用kubeadm部署的kubernetes集群,其中master节点上默认拒绝pod调度运行在此上面。官方术语是:master默认被赋予了一个taints(污点),那么想让master也成为工作节点,有以下两种方法
去掉taints(污点) 备注:生产环境不推荐
让pod能够容忍该节点上的污点

1、查看节点Taints

kubectl describe node NODE_NAME | grep Taints

2、删除节点taints

kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule-

3、增加污点(taints)增加污点,禁止pod调度到该节点上

kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule

pod容忍
需要在pod上声明 Toleration。下面两个 Toleration都被设置为可以容忍具有污点的Node,使Pod能够调度到有污点的节点上。

tolerations:
- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

或者

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

pod的Toleration声明中的key和effect需要与Taint的设置保持一致,并且满足一下条件之一:
operator 的值是 Exists(无需指定 value)
operator 的值是 Equal 并且 value相等
比如上面的例子可以这样写:

tolerations:
- key: "node-role.kubernetes.io/maste"
  operator: "Equal"
  value: "node-role.kubernetes.io/maste"
  effect: "NoSchedule"

或者

tolerations:
- key: "node-role.kubernetes.io/master"
  operator: "Exists"
  effect: "NoSchedule"

文章来源:https://blog.csdn.net/qq_14910065/article/details/135398064
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。