k8s-master增加和删除污点

使用kubeadm部署的kubernetes集群,其中master节点上默认拒绝pod调度运行在此上面。官方术语是:master默认被赋予了一个taints(污点),那么想让master也成为工作节点,有以下两种方法

去掉taints(污点) 备注:生产环境不推荐

让pod能够容忍该节点上的污点

1、查看节点Taints

bash 复制代码
kubectl describe node NODE_NAME | grep Taints

2、删除节点taints

bash 复制代码
kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule-

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

bash 复制代码
kubectl taint node k8s-master node-role.kubernetes.io/master:NoSchedule

pod容忍

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

bash 复制代码
tolerations:
- key: "key"
  operator: "Equal"
  value: "value"
  effect: "NoSchedule"

或者

bash 复制代码
tolerations:
- key: "key"
  operator: "Exists"
  effect: "NoSchedule"

pod的Toleration声明中的key和effect需要与Taint的设置保持一致,并且满足一下条件之一:

operator 的值是 Exists(无需指定 value)

operator 的值是 Equal 并且 value相等

比如上面的例子可以这样写:

bash 复制代码
tolerations:
- key: "node-role.kubernetes.io/maste"
  operator: "Equal"
  value: "node-role.kubernetes.io/maste"
  effect: "NoSchedule"

或者

bash 复制代码
tolerations:
- key: "node-role.kubernetes.io/master"
  operator: "Exists"
  effect: "NoSchedule"
相关推荐
叶总没有会16 小时前
Docker入门
运维·docker·容器
发现你走远了16 小时前
极简后端环境搭建:一行 Docker 命令部署四大核心数据库(避坑 PG 18+)
数据库·docker·容器
身如柳絮随风扬16 小时前
使用 Docker 部署 GitLab 并分配用户账号 —— 保姆级教程
docker·容器·gitlab
运维老郭17 小时前
K8s故障排查:一条分层排查路径解决99%线上问题
运维·云原生·kubernetes
AI攻城狮17 小时前
谷歌花400亿投了"对手":这不是矛盾,这是最高明的战略对冲
云原生
brucelee18617 小时前
Docker 运行 Android 模拟器
android·docker·容器
AI攻城狮17 小时前
中国大模型在成本领域继续碾压对手,成为难以逾越的护城河
云原生
renhongxia118 小时前
AI技术分享:如何做好职场内部技术培训
人工智能·安全·docker·语言模型·容器
Trival_dream18 小时前
应用与实例的关系
java·docker·kubernetes
冷小鱼18 小时前
Spring Boot:从核心原理到 AI 时代的云原生基石
人工智能·spring boot·云原生