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"
相关推荐
阿里云云原生2 分钟前
从页面渲染到智能体:ARMS Node.js 探针解锁 SSR + AI 全链路可观测
云原生
程序员老赵3 小时前
Docker 部署 Portainer CE:轻松搭建容器管理平台
docker·容器·开源
大侠归来4 小时前
Docker 部署 Dolibarr:从零开始的完整指南
运维·docker·容器
七月吃橘子4 小时前
WSL2+Docker+Ollama,本地部署大模型实践(Qwen1.8b)
运维·docker·容器
Nontee5 小时前
K3s vs K8s:差的不是功能,是交付方式
云原生·容器·kubernetes
做运维的阿瑞5 小时前
Docker常见故障全方位排查指南
运维·docker·云原生·容器
谢亮_vipxieliang5 小时前
云原生存储进阶:CSI 演进与 AI 工作负载的存储架构设计
人工智能·云原生
木子欢儿5 小时前
Zabbix 7.4 Alpine 版 Docker Compose 部署
android·运维·docker·容器·zabbix
朱包林5 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
打工仔折腾 AI6 小时前
极空间用 Docker 部署 Photopea:网页版 PS 的私有化实践
运维·后端·python·docker·容器·langchain·ai agent 实战