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

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

相关文章:

  • dummy cli-tool ubuntu22.04使用
  • QT:自定义ComboBox
  • MySQL 表的约束(二)
  • vs2022解决 此项目需要MFC库。从visual studio安装程序(单个组件选项卡)为正在使用的任何工具和体系结构安装他们问题
  • 【AI生产力工具】Windsurf,一款AI编程工具
  • 目标检测YOLO实战应用案例100讲- 无人机平台下露天目标检测与计数
  • 新能源汽车声纹监测技术的发展趋势是什么?
  • [Linux运维] [Ubuntu/Debian]在Lightsail Ubuntu服务器上安装Python环境的完整指南
  • ETL架构、数据建模及性能优化实践
  • 开源模型应用落地-全能音频新纪元-Kimi-Audio-7B-Instruct-重塑多模态交互边界
  • 网络原理 - 10(HTTP/HTTPS - 1)
  • LBS服务(基于位置的服务)与LLM(大型语言模型)交互功能分析
  • 为什么PPT中的视频无法播放?
  • 【Robocorp实战指南】Python驱动的开源RPA框架
  • 分析整体文档集合质量:来源多样性、内容新鲜度、信息密度、内容具体性
  • JVM——引入
  • 了解Android studio 初学者零基础推荐(1)
  • 组装 (DIY) 一台显示器 (4K 屏支持 4 画面分屏 PBP 1080p x4)
  • 【保姆级教程-Centos7环境下部署mongodb并设置开机自启】
  • node.js puppeteer 实践
  • 伊朗港口爆炸已致46人死亡
  • 荣盛发展去年亏损约84.43亿元,要“过苦日子、紧日子”
  • 一周观展|五一假期将到,特展大展陆续开幕
  • 坤莹·帕塔玛·利斯达特拉任世界羽联主席
  • 印度媒体称印巴在克什米尔再次交火
  • 政治局会议深读|首提“持续巩固房地产市场稳定态势”,楼市政策还有哪些优化空间