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"
相关推荐
不老刘9 小时前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
mit6.82412 小时前
AKS--Azure Managed Kubernetes
kubernetes·flask·azure
爱莉希雅&&&13 小时前
K8s NFS+StorageClass+PV/PVC+Deployment 实战笔记
笔记·容器·kubernetes
阿里云云原生13 小时前
2026云栖大会定档!
云原生
人间凡尔赛14 小时前
eBPF + WebAssembly 正在重写服务网格数据平面:2026 云原生架构的“去 Sidecar“革命
后端·云原生·架构
一位正在转型AI全栈的前端工程师15 小时前
前端转全栈:从 502 到 200,我的第一个 Docker+Nginx+Node.js 项目
docker·容器
云烟成雨TD16 小时前
Micrometer 系列【33】Spring Boot Micrometer Metrics 自动配置模块解析
spring boot·云原生·micrometer
维核科技16 小时前
大模型私有化部署:Docker与Kubernetes实战避坑
docker·容器·kubernetes
GlueNa2SiO318 小时前
07-Docker Compose多容器编排
笔记·学习·docker·容器
SLD_Allen18 小时前
Kubernetes + Ray + Volcano:云原生AI训练调度体系
人工智能·云原生·kubernetes