Kubernetes 的 Taint 和 Toleration(污点和容忍)
2021/11/30 8:06:12
本文主要是介绍Kubernetes 的 Taint 和 Toleration(污点和容忍),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
作者:SRE运维博客
博客地址: https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/211129946481/
相关话题:https://www.cnsre.cn/kubernetes/
Taint 和 Toleration(污点和容忍)
在 k8s
集群中,节点亲和性 NodeAffinity
是一种 Pod
上定义的属性,能够让 Pod
可以按找我们的需求调度到指定节点上,而 Taints
(污点) 则于NodeAffinity
(节点亲和性)是相反的,它是一种 Node
上定义的属性,可以让 Pod
不被调度到带污点的节点上,甚至会对带污点节点上已有的 Pod
进行驱逐。对应的 k8s
可以给 Pod
设置 Tolerations
(容忍) 让 Pod
能够对有污点的节点设置容忍,将 Pod
调度到该节点。 Taints
一般是配合 Tolerations
使用的。
为 node 设置污点和容忍
NoSchedule: 一定不能被调度 PreferNoSchedule: 尽量不要调度 NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
为 node1 设置 taint:
kubectl taint nodes k8s-node1 key1=value1:NoSchedule kubectl taint nodes k8s-node1 key1=value1:NoExecute kubectl taint nodes k8s-node1 key2=value2:NoSchedule
查看 node1 上的 taint:
kubectl describe nodes k8s-node1 |grep Taint
删除上面的 taint:
kubectl taint nodes k8s-node1 key1:NoSchedule- kubectl taint nodes k8s-node1 key1:NoExecute- kubectl taint nodes k8s-node1 key2:NoSchedule- kubectl taint nodes k8s-node1 key1- # 删除指定key所有的effect
为 pod 设置 toleration
只要在 pod 的 spec 中设置 tolerations 字段即可,可以有多个 key
,如下所示:
tolerations: # containers同级 - key: "key1" # 能容忍的污点key operator: "Equal" # Equal等于表示key=value , Exists不等于,表示当值不等于下面value正常 value: "value1" # 值 effect: "NoSchedule" # effect策略,可以设置为 NoSchedule、PreferNoSchedule 或 NoExecute - key: "key1" operator: "Equal" value: "value1" effect: "NoExecute" - key: "node.alpha.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 4000
tolerations
和containers
同级。key
能容忍的污点key
。operator
Equal
等于表示key=value
,Exists
不等于,表示当值不等于下面value
正常value
可以设置为NoSchedule
、PreferNoSchedule
或NoExecute
。effect
effect
策略tolerationSeconds
是当 pod 需要被驱逐时,可以继续在 node 上运行的时间。
具体的使用方法请参考官方文档。
作者:SRE运维博客
博客地址: https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/211129946481/
相关话题:https://www.cnsre.cn/tags/kubernetes/
这篇关于Kubernetes 的 Taint 和 Toleration(污点和容忍)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在Kubernetes (k8s) 中搭建三台 Nginx 服务器怎么实现?-icode9专业技术文章分享
- 2024-11-05基于Kubernetes的自定义AWS云平台搭建指南
- 2024-11-05基于Kubernetes Gateway API的现代流量管理方案
- 2024-11-05在Kubernetes上部署你的第一个应用:Nginx服务器
- 2024-11-05利用拓扑感知路由控制Kubernetes中的流量
- 2024-11-05Kubernetes中的层次命名空间:更灵活的资源管理方案
- 2024-11-055分钟上手 Kubernetes:精简实用的 Kubectl 命令速查宝典!
- 2024-10-30K8s 容器的定向调度与亲和性
- 2024-10-28云原生周刊:K8s未来三大发展方向 丨2024.10.28
- 2024-10-25亚马逊弹性Kubernetes服务(EKS)实战:轻松搭建Kubernetes平台