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"
相关推荐
问简1 小时前
docker 镜像相关
运维·docker·容器
Benszen2 小时前
Docker容器化技术实战指南
运维·docker·容器
lin_dec+2 小时前
Serverless:零成本按需计算的未来
云原生·serverless
Hommy883 小时前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
斯普信云原生组4 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪4 小时前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人5 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
迷藏4945 小时前
**eBPF实战进阶:从零构建网络流量监控与过滤系统**在现代云原生架构中,**网络可观测性**和**安全隔离**已成为
java·网络·python·云原生·架构
刘~浪地球5 小时前
架构设计--事件驱动架构设计与实现(05)
云原生·系统架构·云计算
鬼先生_sir5 小时前
Zookeeper:从入门到精通
分布式·zookeeper·云原生