当前位置: 首页 > 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.dtcms.com/a/150439.html

相关文章:

  • 事关数据安全,ARM被爆不可修复漏洞
  • 在KEIL里C51和MDK兼容以及添加ARM compiler5 version编译器
  • 单片机通讯外设 (UART)、I2C、SPI、CAN 和 LIN 时序分析 使用场景以及优缺点对比分析报告
  • Ubuntu 环境下控制蓝牙适配器
  • JVM理解(通俗易懂)
  • Python内置函数---bin()
  • 11.thinkphp的模板
  • java将pdf转换成word
  • 3DGS之齐次坐标
  • 用户模块-SpringEvent观察者模式
  • ToB标杆!容联云入选量子位「2025中国AIGC应用报告」
  • CSS内边距、外边距、边框
  • 深入微服务核心:从架构设计到规模化
  • CSS初识
  • Android仿今日头条Kotlin版本
  • 机器学习算法-分类决策树
  • vue项目中使用tinymce富文本编辑器
  • CSS3 基础(边框效果)
  • 【Unity笔记】Unity 编辑器扩展:一键查找场景中组件引用关系(含完整源码)(组件引用查找工具实现笔记)
  • Prompt 结构化提示工程
  • React组件测试完全指南:从入门到实践
  • vue3+dhtmlx 甘特图真是案例
  • 数据一致性问题剖析与实践(二)——单机事务的一致性问题
  • 数据为基:机器学习中数值与分类数据的处理艺术及泛化实践
  • MacOS中安装Python(homebrew,pyenv)
  • Stable Baselines3 结合 gym 训练 CartPole 倒立摆
  • 【教学类-102-17】蝴蝶三色图(用最大长宽作图,填入横板和竖版共16个WORD单元格模版大小,制作大小图)
  • Java 环境配置详解(Windows、macOS、Linux)
  • 【Leetcode 每日一题】1399. 统计最大组的数目
  • 第52讲:农业AI + 区块链——迈向可信、智能、透明的未来农业