kubectl taint node node1.org study=nohard:NoSchedule
[rootmaster1 workload]# kubectl get node node1.org -o yaml |grep taint -iA 10taints:effect: NoSchedulekey: studyvalue: nohardeffect: NoSchedulekey: titlevalue: srestatus:addresses:address: 192.168.3.63type: InternalIP复制代码复制代码[rootmaster1 workload]# cat controller-deployment2.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: controller-deployment-demo-2spec:replicas: 2selector:matchLabels:app: myapp2template:metadata:labels:app: myapp2 #注意此处labels和selector中label必须相同spec:containers:- name: deployment-2image: registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.2复制代码kubectl apply -f controller-deployment2.yaml只调度到node2node1有污点不调度复制代码[rootmaster1 workload]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScontroller-deployment-demo-2-57ff4f59b-j8wmg 1/1 Running 0 30s 10.244.3.205 node2.orgcontroller-deployment-demo-2-57ff4f59b-sk8dt 1/1 Running 0 30s 10.244.3.206 node2.org[rootmaster1 workload]#复制代码Tolerations 容忍度属性Tolerations 是Pod上的属性Tolerations如下定义复制代码kubectl explain deployment.spec.template.spec.tolerationskubectl explain pod.spec.tolerationskey #被容忍的keyvalue #被容忍key的值,当operator为exists时,此value无需定义operator #Equal等值比较和 Exists 存在比较effect #可以容忍的节点的行为值,必须和Traint中的effect值相同或高于才能容忍tolerationSeconds #被驱逐的宽限时间默认是0就是立即被驱逐复制代码容忍度的判断方式在Pod对象上定义容忍度时它支持两种操作符operator一种是等值比较Equal表示Pod的容忍度与节点的污点必须在key、value和effect三者都完全匹配才可以容忍此为默认值一种是存在性判断Exists如果定义了key和effect表示只要存在key和effect二者相同时才容忍但不关注value就可容忍,必须不能定义valuekubectl get ds -n metallb-system -o yaml|grep -i -A 10 tolerations复制代码tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoSchedule key: node-role.kubernetes.io/control-plane operator: Exists volumes: - name: memberlist secret: defaultMode: 420复制代码kubectl get node master1.org -o yaml|grep -i -A 10 taints复制代码[rootmaster1 ~]# kubectl get node master1.org -o yaml|grep -i -A 10 taintstaints:effect: NoSchedulekey: node-role.kubernetes.io/control-planestatus:addresses:address: 192.168.3.60type: InternalIPaddress: master1.orgtype: Hostnameallocatable:cpu: “2”复制代码如果只定义了effect并没有定义key表示指定effect的所有key都能容忍kubectl get ds -n kube-system kube-flannel -o yaml |grep -i -A10 tolerations复制代码tolerations: - effect: NoSchedule operator: Exists volumes: - hostPath: path: /run/flannel type: name: run - hostPath: path: /opt/cni/bin type: 复制代码如果key和effect都没有定义,表示容忍所有污点kubectl get ds -n kube-system kube-proxy -o yaml |grep -i -A3 tolerations:[rootmaster1 ~]# kubectl get ds -n kube-system kube-proxy -o yaml |grep -i -A3 tolerations:tolerations:- operator: Existsvolumes:- configMap:容忍度的匹配原则一个节点可以配置使用多个污点而一个Pod对象也可以有多个容忍度Kubernetes 处理多个污点和容忍度的过程就像一个过滤器从一个节点的所有污点开始遍历 过滤掉那些 Pod 中存在与之相匹配的容忍度的污点。余下未被过滤的污点的 effect 值决定了 Pod 是否会被分配到该节点一个节点上如果有多个污点Taint,对每个Taint 都需要容忍才能部署Pod将一个Pod对象的容忍度套用到特定节点的污点之上进行匹配度检测时将遵循如下逻辑遍历该节点的所有污点并过滤掉容忍度可匹配到的污点余下未被过滤掉的污点则由污点的effect来判定其满足状态对于剩余的不能匹配到容忍度的所有污点中若存在至少一个污点使用了NoSchedule效用标识则拒绝调度当前Pod至该节点对于不能匹配到容忍度的所有污点若都不具有NoSchedule效用标识但至少有一个污点使用了PreferNoScheduler效用标准则调度器会尽量避免将当前Pod对象调度至该节点如果至少有一个不能匹配容忍度的污点使用了NoExecute效用标识节点将立即驱逐当前Pod对象或者不允许该Pod调度至给定的节点而且即便容忍度可以匹配到使用了NoExecute效用标识的污点若在Pod上定义容忍度时同时使用tolerationSeconds属性定义了容忍时限则在超出时限后当前Pod也将会被节点所驱逐添加容忍度[rootmaster1 ~]# kubectl get deploymentNAME READY UP-TO-DATE AVAILABLE AGEcontroller-deployment-demo-2 2/2 2 2 9hExists并且没有key和value,可以容忍所有污点可以支持复制代码rootmaster1 workload]# cat controller-deployment2.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: controller-deployment-demo-2spec:replicas: 2selector:matchLabels:app: myapp2template:metadata:labels:app: myapp2spec:containers:- name: deployment-2image: registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.2tolerations:- operator: Exists复制代码kubectl apply -f controller-deployment2.yaml啥都可以容忍复制代码[rootmaster1 workload]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScontroller-deployment-demo-2-84458587c5-cczk4 1/1 Running 0 95s 10.244.1.202 node1.orgcontroller-deployment-demo-2-84458587c5-cm2zm 1/1 Running 0 95s 10.244.5.57 node3.orgcontroller-deployment-demo-2-84458587c5-kj794 1/1 Running 0 95s 10.244.0.56 master1.orgcontroller-deployment-demo-2-84458587c5-nwzgp 1/1 Running 0 95s 10.244.3.211 node2.org复制代码复制代码[rootmaster1 workload]# cat controller-deployment2.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: controller-deployment-demo-2spec:replicas: 4selector:matchLabels:app: myapp2template:metadata:labels:app: myapp2spec:containers:- name: deployment-2image: registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.2tolerations:- effect: NoScheduleoperator: Existskey: title- key: studyoperator: Exists复制代码kubectl apply -f controller-deployment2.yaml不调度到master1.org复制代码[rootmaster1 workload]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATEScontroller-deployment-demo-2-ff9cdbb4d-c76mx 1/1 Running 0 13s 10.244.5.59 node3.orgcontroller-deployment-demo-2-ff9cdbb4d-g8fwg 1/1 Running 0 13s 10.244.3.212 node2.orgcontroller-deployment-demo-2-ff9cdbb4d-h27sc 1/1 Running 0 13s 10.244.5.58 node3.orgcontroller-deployment-demo-2-ff9cdbb4d-vdm5j 1/1 Running 0 13s 10.244.1.203 node1.org复制代码#删除污点kubectl taint node [:]-kubectl taint node node1.org study-复制代码[rootmaster1 workload]# kubectl get node node1.org -o yaml |grep taint -iA 10taints:effect: NoSchedulekey: titlevalue: srestatus:addresses:address: 192.168.3.63type: InternalIPaddress: node1.orgtype: Hostnameallocatable:复制代码kubectl taint node node1.org title-#cordon封锁节点,即添加污点node.kubernetes.io/unschedulable:NoSchedule,只影响新创建Pod调度kubectl cordonkubectl cordon node1.org添加污点复制代码rootmaster1 workload]# kubectl get node node1.org -o yaml|grep -i -A 10 taintstaints:effect: NoSchedulekey: node.kubernetes.io/unschedulabletimeAdded: “2026-07-17T00:33:29Z”unschedulable: truestatus:addresses:address: 192.168.3.63type: InternalIPaddress: node1.orgtype: Hostname复制代码复制代码[rootmaster1 workload]# cat controller-deployment2.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: controller-deployment-demo-2spec:replicas: 4selector:matchLabels:app: myapp2template:metadata:labels:app: myapp2spec:containers:- name: deployment-2image: registry.cn-beijing.aliyuncs.com/wangxiaochun/pod-test:v0.2

相关新闻

FastML:面向硬实时场景的确定性机器学习框架

FastML:面向硬实时场景的确定性机器学习框架

1. FastML:不是另一个AutoML玩具,而是科研一线的“模型速写本”你有没有过这种体验:凌晨两点,调试完第十七个超参组合,服务器风扇声像直升机起飞,而手边那份高能物理实验的实时触发数据,正以每秒…

2026/7/19 5:41:42阅读更多 →
会计学专业暑假怎么过?这些事做后开学弯道超车

会计学专业暑假怎么过?这些事做后开学弯道超车

暑假两个月,看起来很长,其实特别容易被浪费。 真正到了秋招你就会发现,同样是会计专业,有的人简历已经写满了实习、证书和技能,有的人却只剩一句"熟练使用Office"。 如果这个暑假不知道干什么,可…

2026/7/19 5:41:42阅读更多 →
如何用MZmine 3解决质谱数据处理中的三大技术挑战

如何用MZmine 3解决质谱数据处理中的三大技术挑战

如何用MZmine 3解决质谱数据处理中的三大技术挑战 【免费下载链接】mzmine3 mzmine source code repository 项目地址: https://gitcode.com/gh_mirrors/mz/mzmine3 MZmine 3是一款功能强大的开源质谱数据分析平台,专为代谢组学、脂质组学等研究领域设计。作…

2026/7/19 5:41:42阅读更多 →
Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新

Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新

Vert.x高性能异步框架重构网盘直链解析服务:突破传统下载瓶颈的架构革新 【免费下载链接】netdisk-fast-download 聚合多种主流网盘的直链解析下载服务, 一键解析下载,已支持夸克网盘/uc网盘/蓝奏云/蓝奏优享/小飞机盘/123云盘等. 支持文件夹分享解析. 体…

2026/7/19 9:46:08阅读更多 →
2026在线抠图去背景保姆级教程:详细操作步骤+免费工具汇总

2026在线抠图去背景保姆级教程:详细操作步骤+免费工具汇总

日常修图、制作证件照、设计海报、处理电商素材时,抠图去背景是高频刚需操作。对于普通用户而言,无需安装专业修图软件、不用掌握复杂修图技巧,借助各类在线工具就能快速完成透明底抠图、更换背景等操作。2026年主流的在线抠图工具分为手机小…

2026/7/19 9:46:08阅读更多 →
2n皇后问题

2n皇后问题

2n皇后问题是8皇后问题的拓展,那么我们就先讲解一下求解8皇后问题的基本思路。 8皇后问题(英文:Eight queens),是由国际棋手马克斯贝瑟尔于1848年提出的问题。 问题表述为:在88格的国际上摆放8个…

2026/7/19 9:46:08阅读更多 →
安伯尼克发布RG34XX掌机后,壹号本公布Game Boy Advance改良版Konkr Pocket Advance

安伯尼克发布RG34XX掌机后,壹号本公布Game Boy Advance改良版Konkr Pocket Advance

安伯尼克与壹号本先后推出掌机新品去年12月,安伯尼克(Anbernic)发布了RG34XX掌机,在掌机市场激起了一定的涟漪。随后,壹号本(Ayaneo)也有了新动作,公布了其对任天堂Game Boy Advance…

2026/7/19 9:46:08阅读更多 →
C语言定时关机恶搞

C语言定时关机恶搞

程序的功能:1 :开机自启动关机以后再开机,程序自动在后台运行,到时间自动关机,关机时间可自己设定。2:窗口是隐藏的,启动的时候没有任何现象,但是在任务管理器能看到3:全…

2026/7/19 9:46:08阅读更多 →
抖音直播间数据抓取技术深度解析:从WebSocket到实时弹幕监控的完整实现

抖音直播间数据抓取技术深度解析:从WebSocket到实时弹幕监控的完整实现

抖音直播间数据抓取技术深度解析:从WebSocket到实时弹幕监控的完整实现 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2025最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 在…

2026/7/19 9:44:08阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:01:04阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:01:04阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:01:04阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/18 22:49:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →