当前位置: 首页 > java >正文

Kubernetes》》k8s》》Taint 污点、Toleration容忍度

污点 》》 节点上
容忍度 》》 Pod上
在K8S中,如果Pod能容忍某个节点上的污点,那么Pod就可以调度到该节点。如果不能容忍,那就无法调度到该节点。

污点和容忍度的概念

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
》》污点等级——>node
在这里插入图片描述
》》容忍度 —>pod
Equal——>一种是等值匹配

Exitst——>一种是存在性匹配;
在这里插入图片描述

# 污点定义在节点的nodeSpec中,容忍度定义在Pod的podSpec中。# 污点和容忍度都是键值对的数据格式,但是要增加一个排斥等级(effect)标记。
# 排斥等级  NoSchedule 、 NoExecute 、PreferNoSchedule
语法格式为:"key=value:effect"
## 使用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```csharp
# 定义污点语法 
# node-name:指定需要打污点的Node主机名 
# key=value:指定污点的键值型数据 effect:为污点的等级
# kubectl taint nodes node01 key=value:effect
kubectl taint nodes <node-name> <key>=<value>:<effect>
# 添加污点 为k8s-node02添加污点,污点程度为NoSchedule,type=calculate为标签
kubectl taint nodes k8s-node2 type=calculate:NoSchedule# 查看污点
kubectl describe nodes k8s-node2 | grep Taints# 删除污点 删除污点之需要指定标签的 **key** 及污点程度
# kubectl taint nodes node01 key[:effect]-
kubectl taint node k8s-node2 type:NoSchedule-

容忍度介绍及定义

Pod对象的容忍度可以通过其spec.tolerations字段进行添加,根据使用的操作符不同,主要有两种可用的形式:

容忍度与污点信息完全匹配的等值关系,使用Equal操作符。
判断污点是否存在的匹配方式,使用Exists操作富。

容忍度所用到的参数tolerations,tolerations参数下的还有以下几个二级参数:

operator:此值被称为运算符,值可以为[Equal|Exists],Equal表示污点的key是否等于value(默认参数),Exists只判断污点的key是否存在,使用该参数时,不需要定义value。
effect:指定匹配的污点程度,为空表示匹配所有等级的污点,值可以为 [NoSchedule|PreferNoSchedule|NoExecut]。
key:指定Node上污点的键key。
value:指定Node上污点的值value。
tolerationSeconds:用于定于延迟驱赶当前Pod对象的时长,如果设置为0或者负值系统将立即驱赶当前Pod。(单位为秒)

apiVersion: v1
kind: Pod
metadata:name: webappnamespace: demolabels:app: webapp
spec:nodeSelector:# 选择调度到具有这个label的节点"special-app": "specialwebapp"# 容忍度tolerations:- key: "question-node"operator: "Equal"value: "broken-disk"effect: "NoSchedule"containers:- name: webappimage: nginxports:- containerPort: 80
http://www.xdnf.cn/news/2673.html

相关文章:

  • 香橙派打包qt文件报错“xcb 插件无法加载”与“QObject::moveToThread”线程错误的解决方案
  • ElasticSearch深入解析(五):如何将一台电脑上的Elasticsearch服务迁移到另一台电脑上
  • 【Spark入门】Spark RDD基础:转换与动作操作深度解析
  • vr全景相机如何选择?
  • Android Studio学习记录1
  • Python(15)迭代器和生成器
  • IP SSL证书常见问题:快速实现HTTPS加密
  • 使用Docker安装Harbor
  • MCP 模型上下文协议配置MCP Server开发实践
  • android录音生成wav
  • Spring Boot定时任务
  • 深入浅出JavaScript常见设计模式:从原理到实战(2)
  • 一文读懂Tomcat应用之 CentOS安装部署Tomcat服务
  • rabbitmq-集群部署
  • 当所有人都用上先进ai,如何保持你的优势?
  • 用Postman验证IAM Token的实际操作
  • Error和Exception的区别
  • 第9讲:坐标轴美学深度优化——刻度线、网格线与边框控制
  • mapbox V3 新特性,室内楼层多层同时三维展示(可单层切换),类似蜂鸟视图效果
  • 深度学习任务评估指标
  • 从普查到防控:ArcGIS洪水灾害全流程分析技术实战——十大专题覆盖风险区划/淹没制图/水文分析/洪水分析/淹没分析/项目交流,攻克防洪决策数据瓶颈!
  • QT:自定义ComboBox
  • 自动驾驶领域专业词汇(专业术语)整理
  • leetcode 206. 反转链表
  • 湖北理元理律师事务所:债务管理领域的平台化创新探索
  • 回归预测 | Matlab实现DBO-LightGBM蜣螂算法优化轻量级梯度提升机多输入单输出回归预测,作者:机器学习之心
  • 嵌入式开发面试典型编程题解析:排序算法、指针操作、字符处理、递归原理等基础原理的深度解析。
  • 第33周JavaSpringCloud微服务 分布式综合应用
  • echarts+标签+指引线
  • 【javascript】竞速游戏前端优化:高频操作与并发请求的解决方案