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

【k8s】Taint污点)、Toleration(容忍)

文章目录

  • 1. 什么是Taint
    • 1.1 Master 节点的 Taint 示例
    • 1.2 普通 Pod 默认不容忍 master taint
    • 1.3 示例:Pod 添加 toleration 来容忍 master taint
  • 2. Taint 和 Label 概念区别

1. 什么是Taint

Taint(污点)是 Kubernetes 给节点贴的“禁止调度标签”,它告诉调度器:“除非 Pod 明确表示可以容忍,否则不要把它调度到这个节点上。”

通俗点说:

🧱 节点说:“我有特殊情况,不欢迎一般 Pod,除非你能接受我(加 toleration)。”

【Taint 的结构】:
一个 Taint 由三个部分组成:

key=value:effect

例如:

node-role.kubernetes.io/master=:NoSchedule

含义如下:

字段解释
key污点的名称,比如节点角色、资源状态
value可选,比如说 taint 的值
effect生效方式:见下方解释

【Taint 的 effect(生效方式)】:

effect意义
NoSchedule不调度新的 Pod 到这个节点(除非 Pod 有 toleration)
PreferNoSchedule尽量不要调度,但不是强制的(调度器尽量避免)
NoExecute不仅不调度新的 Pod,还会驱逐已经在运行但不容忍的 Pod

1.1 Master 节点的 Taint 示例

你可以运行下面命令看看 master 节点带了什么 taint:

kubectl describe node <master-node-name> | grep -i taint

结果通常类似这样:

Taints: node-role.kubernetes.io/master:NoSchedule

这个 taint 的含义是:

  • key: node-role.kubernetes.io/master

  • effect: NoSchedule(不允许 Pod 调度)

一般情况下,master节点不希望pod部署到其上面,因此会增加污点

1.2 普通 Pod 默认不容忍 master taint

如果你的 Pod 没有添加 toleration,它就会被默认 scheduler 拒之门外:


## 1.3 普通 Pod(默认不带 toleration)
apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:containers:- name: busyboximage: busyboxcommand: ["sleep", "3600"]

这个 Pod 无法调度到 master 节点。

1.3 示例:Pod 添加 toleration 来容忍 master taint

如果你想让这个 Pod 可以调度到 master 节点,需要这样添加 toleration:

apiVersion: v1
kind: Pod
metadata:name: test-pod
spec:tolerations:- key: "node-role.kubernetes.io/master"operator: "Exists"effect: "NoSchedule"containers:- name: busyboximage: busyboxcommand: ["sleep", "3600"]

2. Taint 和 Label 概念区别

对象用于示例
Label选择目标节点(配合 nodeSelector/affinity)node-role.kubernetes.io/master=true
Taint驱逐策略,Pod不能调度上去node-role.kubernetes.io/master:NoSchedule
TolerationPod 对 taint 的容忍toleration: key=node-role.kubernetes.io/master
http://www.xdnf.cn/news/98677.html

相关文章:

  • HCIA-Access V2.5_18_网络管理基础_1_网络管理系统架构
  • 去年15天背完高项重点,成功上岸
  • H5S 寒武纪GPU转码
  • 约束constraint
  • PHP 反序列化原生类 TIPS字符串逃逸CVE 绕过漏洞属性类型特征
  • 车载功能测试-车载域控/BCM控制器测试用例开发流程【用例导出方法+优先级划分原则】
  • Linux内核源码结构
  • 数智化浪潮下,智能外呼系统如何重塑沟通格局
  • WinForm实现管理员权限运行的方式
  • 外贸获客新革命:基于AI的搜索引擎排名攻防战——48小时抢占谷歌TOP3的技术逻辑与实战路径
  • 【论文阅读】Visual Instruction Tuning
  • 数字化应用低代码开发平台的崛起
  • AI大模型学习十一:‌尝鲜ubuntu 25.04 桌面版私有化sealos cloud + devbox+minio,实战运行成功
  • 开源作业调度框架Quartz框架详细使用说明
  • XCZU19EG-2FFVC1760I Xilinx赛灵思FPGA Zynq UltraScale+MPSoC
  • 【AI 加持下的 Python 编程实战 2_09】DIY 拓展:从扫雷小游戏开发再探问题分解与 AI 代码调试能力(上)
  • 建站踩得坑,nginx+mysql+php+wordpress
  • Linux笔记---进程间通信:匿名管道
  • 2.2 主流大模型架构:GPT、DeepSeek、GLM、Claude、QwQ、Qwen2.5-Max等模型的比较与应用场景
  • C++初阶-类和对象(下)
  • Unity常用内置变换矩阵
  • C++20 module下的LVGL模拟器
  • 使用logrotate实现日志轮转
  • 深度学习激活函数与损失函数全解析:从Sigmoid到交叉熵的数学原理与实践应用
  • MYSQL之表的操作
  • 店匠科技摘得 36 氪“2025 AI Partner 创新大奖”
  • 深入解析:RocketMQ、RabbitMQ和Kafka的区别与使用场景
  • 高并发系统设计的六字真言
  • 7.7 Axios+Redux+JWT全链路实战:打通前后端API通信最佳实践
  • 努比亚Z70S Ultra 摄影师版将于4月28日发布,首发【光影大师990】传感器