kubectl taint node node1.org study=nohard:NoSchedule

发布时间:2026/9/12 7:22:34

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
延伸阅读

更多相关文章

2026/9/10 1:09:50

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

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

2026/9/10 2:09:18

Android开源生态与开发工具全解析

1. Android开源生态全景解读作为全球最流行的移动操作系统,Android的开源特性为其带来了无限可能。AOSP(Android Open Source Project)是这一切的基础,它包含了Android系统的完整源代码,允许开发者自由下载、修改和分发…

2026/9/10 4:52:20

如何快速掌握BlenderGIS:新手避坑完整指南

如何快速掌握BlenderGIS:新手避坑完整指南 【免费下载链接】BlenderGIS Blender addons to make the bridge between Blender and geographic data 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderGIS 想在Blender中轻松处理地理数据吗?Ble…

2026/9/12 7:20:03

Python Flask MySQL Pyecharts:构建豆瓣电影数据可视化看板全流程

简介:一套基于PythonFlaskMySQLPyecharts构建的豆瓣电影数据可视化系统,面向高校计算机专业毕业设计、课程设计以及初入数据可视化方向的开发者,完整覆盖数据抓取、存储管理、后端接口与图表展示等环节。压缩包共209个文件,大小约…

2026/9/12 7:20:03

企业级AI Agent竞争版图与技术落地:从MCP到LangGraph的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 7:20:03

程序员如何避免氛围编程陷阱,提升工作效率

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 7:20:03

SpringBoot奶茶店管理系统开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 7:15:03

Kronos K线预测实战指南:四步读懂首个开源金融基础模型

Kronos K线预测实战指南:四步读懂首个开源金融基础模型 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos Kronos 是首个面向金融 K 线&#xff0…

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码