作者:不焦躁的程序员 2023-09-21 11:28:28
云计算
云原生 本文主要快速讲解Kubernetes的污点和容忍度,一句话总结:如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。
创新互联是一家专业提供武城企业网站建设,专注与网站设计制作、成都网站制作、成都h5网站建设、小程序制作等业务。10年已为武城众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
在K8S中,如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。如果不能容忍,那就无法调度到该节点。污点和容忍度就像谈恋爱的小情侣,你情我愿,女生知道男生的缺点,却依然选择容忍,这样他们可以生活在一起。如果女生容忍不了男生的缺点,那就没法生活在一起。
Node对Pod对象的排斥等级有3种:
在Pod上定义容忍度时,它支持两种操作符:Equal和Exists。
污点定义在节点的nodeSpec中,容忍度定义在Pod的podSpec中。
污点和容忍度都是键值对的数据格式,但是要增加一个排斥等级(effect)标记。
语法格式为:"key=value:effect"。
上文中定义了Node对Pod的排斥等级有3种。Node如果定义的排斥等级是NoExecute,那么没有配置该污点容忍度的Pod会被驱逐。
K8S 也会使用污点自动标识有问题的节点,比如节点在内存不足的情况下,节点控制器会自动为该节点打上污点信息,并且使用 NoExecute作为排斥等级,此时没有设置此类污点容忍度的Pod 会被驱逐。
DaemonSet控制器会无视此类污点,以便能在节点上部署重要的Pod。
目前,内置的污点也比较多,比如以下几个:
给节点添加污点:
kubectl taint nodes node01 key=value:effect
给节点删除污点,此处的effect可以没有
kubectl taint nodes node01 key[:effect]-
上文中提到了,容忍度的操作符有2种:Equal和Exists,同时把排斥等级也要加上。
使用Equal的场景:
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoExecute"
使用Exists的场景:
tolerations:
- key: "key"
operator: "Exists"
effect: "NoExecute"
如果Node上污点的排斥等级是NoExecute时,该Node上正在运行的Pod如果没有该污点的容忍度,就会被立刻驱逐。不过系统增加了tolerationSeconds字段,用来延迟驱逐Pod。
tolerationSeconds字段的意思是:如果 Pod 的容忍度配置里存在排斥等级为 NoExecute ,并且指定了属性 tolerationSeconds 的值,那么Pod 还能继续在该节点上运行的时间(单位为秒):
tolerations:
- key: "key"
operator: "Equal"
value: "value"
effect: "NoExecute"
tolerationSeconds: 3600
kubectl get nodes --show-labels
kubectl label node k8s-worker-2 special-app=specialwebapp
查看某节点的污点情况,可以看到Taints这一栏是none,也可以看到label情况。
kubectl describe node k8s-worker-2
步骤:
操作过程:
kubectl taint nodes k8s-worker-2 question-node=broken-disk:NoSchedule
kubectl taint nodes k8s-worker-2 question-node-
apiVersion: v1
kind: Pod
metadata:
name: webapp
namespace: demo
labels:
app: webapp
spec:
nodeSelector:
# 选择调度到具有这个label的节点
"special-app": "specialwebapp"
# kubernetes.io/hostname: k8s-worker-2
tolerations:
- key: "question-node"
operator: "Equal"
value: "broken-disk"
effect: "NoSchedule"
containers:
- name: webapp
image: nginx
ports:
- containerPort: 80
在K8S中,如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。如果不能容忍,那就无法调度到该节点。
网页名称:五分钟搞懂K8S的污点和容忍度
标题URL:http://www.shufengxianlan.com/qtweb/news13/264063.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联