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

k8s-----23、Taint和Toleration、污点和容忍

1、使用场景

生产环境部署规则
1、master节点不允许部署其他类型的pod节点
2、新增node节点需要经过测试才可投入使用,才允许pod部署在该节点
3、维护/升级node节点时,需要将节点上的pod提前进行迁移
4、特殊节点:比如这个节点是SSD/GPU类型的。 不能随便一个pod都部署在这个节点

设置了污点和容忍后,并一定就必须按照这个污点和容忍去走,并不一定非要部署在有污点的节点,类似于回家有5个门,有些门设置了污点,也就是有锁的,但是有些门没有设置,刚好没锁,然后刚好走到了这个门,直接就可以进去了。所以pod并不会一定走到这个节点。

2、概念

Taint能够使节点排斥一类特定的Pod,Taint和Toleration相互配合可以用来避免Pod被分配到不合适的节点,比如Master节点不允许部署系统组件之外的其他Pod。每个节点上都可以应用一个或多个Taint,这表示对于那些不能容忍这些Taint的Pod是不会被该节点接受的。如果将Toleration应用于Pod上,则表示这些Pod可以(但不要求)被调度到具有匹配Taint的节点上。

2.1 taint 污点

污点:针对的是node节点
Taint在一类服务器上打上污点,让不能容忍这个污点的Pod不能部署 在打了污点的服务器上。

2.2 Toleration容忍

容忍:针对的是pod
Toleration是让Pod容忍节点上配置的污点,可以让一些 需要特殊配置的Pod能够调用到具有污点和特殊配置的节点上。

2.3 官网

官网文档

3、配置解析

3.1 Taint配置解析

创建一个污点(一个节点可以有多个污点):kubectl taint nodes NODE_NAME TAINT_KEY=TAINT_VALUE:EFFECT #nodes表示节点主机名,key 和 value,冒号后面是调度策略
比如:kubectl taint nodes k8s-node01 ssd=true:PreferNoSchedule #示例
调度策略:
NoSchedule:禁止调度到该节点,已经在该节点上的Pod不受影响 
NoExecute:禁止调度到该节点,如果不符合这个污点,会立马被驱逐(或在一段时间后) 
PreferNoSchedule:尽量避免将Pod调度到指定的节点上,如果没有更合适的节点,可以部署到该节点

3.2 Toleration配置解析

策略:
方式1 完全匹配:key value effect完全和污点的节点相同tolerations:- key: "taintKey"operator: "Equal" value: "taintValue" effect: "NoSchedule"
方式2 不完全匹配:满足key的就可以调度到这个节点上tolerations:- key: "taintKey"operator: "Exists" effect: "NoSchedule"
方式3 大范围匹配(不推荐key为内置Taint)tolerations:- key: "taintKey" operator: "Exists"
方式4 匹配所有(不推荐)tolerations:- operator: "Exists"
停留时间配置:tolerations: - key: "key1"operator: "Equal"value: "value1"effect: "NoExecute"  #驱逐tolerationSeconds: 3600 # 可以在node上停留的时间,不会立即驱逐

4、使用案例

有一个节点是纯SSD硬盘的节点,现需要只有一些需要高性能存储的Pod才能调度到该节点上
#给节点打上污点和标签:
1. kubectl taint nodes k8s-node01 ssd=true:NoExecute(此时会驱逐没有容忍该污点的Pod)
2. kubectl taint nodes k8s-node01 ssd=true:NoSchedule
3. kubectl label node k8s-node01 ssd=true
#配置pod
apiVersion: v1 
kind: Pod 
metadata:name: nginx labels:env: testspec:containers:- name: nginx image: nginximagePullPolicy: IfNotPresent nodeSelector:ssd: "true" tolerations: - key: "ssd"operator: "Exists"

5、内置污点

➢ node.kubernetes.io/not-ready:节点未准备好,相当于节点状态Ready的值为False。
➢ node.kubernetes.io/unreachable:Node Controller访问不到节点,相当于节点状态Ready的值为Unknown。
➢ node.kubernetes.io/out-of-disk:节点磁盘耗尽。
➢ node.kubernetes.io/memory-pressure:节点存在内存压力。
➢ node.kubernetes.io/disk-pressure:节点存在磁盘压力。
➢ node.kubernetes.io/network-unavailable:节点网络不可达。
➢ node.kubernetes.io/unschedulable:节点不可调度。
➢ node.cloudprovider.kubernetes.io/uninitialized:如果Kubelet启动时指定了一个外部的cloudprovider,它将给当前节点添加一个Taint将其标记为不可用。在cloud-controller-manager的一个controller初始化这个 节点后,Kubelet将删除这个Taint。
节点不健康,6000秒后再驱逐(默认是300秒): 这里的时间需要合理配置,有时候由于网络抖动导致的,所以时间设置不可以太短,但是时间设置过长,可能导致业务受损。
tolerations:
- key: "node.kubernetes.io/unreachable"operator: "Exists" effect: "NoExecute" tolerationSeconds: 6000  #只容忍这么长时间

6、taint命令常用示例

创建一个污点(一个节点可以有多个污点):kubectl taint nodes NODE_NAME TAINT_KEY=TAINT_VALUE:EFFECT
比如:
查看一个节点的污点:kubectl get node k8s-node01 -o go-template --template {{.spec.taints}}kubectl describe node k8s-node01 | grep Taints -A 10 
删除污点(和label类似):基于Key删除: kubectl taint nodes k8s-node01 ssd-基于Key+Effect删除: kubectl taint nodes k8s-node01 ssd:PreferNoSchedule- 
修改污点(Key和Effect相同):kubectl taint nodes k8s-node01 ssd=true:PreferNoSchedule --overwrite

相关文章:

k8s-----23、Taint和Toleration、污点和容忍

1、使用场景 生产环境部署规则 1、master节点不允许部署其他类型的pod节点 2、新增node节点需要经过测试才可投入使用,才允许pod部署在该节点 3、维护/升级node节点时,需要将节点上的pod提前进行迁移 4、特殊节点:比如这个节点是SSD/GPU类型…...

全面解析优化企业Microsoft 365网络的加速方案

您的员工是否有因为Microsoft 365频繁掉线、卡顿、无法登录而向IT部门抱怨过? 很多时候企业会以为是自身网络带宽不足才导致访问失败,但是在采取增加带宽的方案后,办公文档协同打开仍旧很慢,文件分享依旧需要等待较长的时间&…...

Xilinx MicroBlaze定时器中断无法返回主函数问题解决

最近在使用Xilinx 7系列FPGA XC7A100T时,运行MicroBlaze软核处理器,添加了AXI TIMER IP核,并使能定时器溢出中断,发现定时器触发中断后,无法返回主函数的问题,最后发现修改编译器优化等级就正常了。 FPGA型…...

Spark SQL概述与基本操作

目录 一、Spark SQL概述 (1)概念 (2)特点 (3)Spark SQL与Hive异同 (4)Spark的数据抽象 二、Spark Session对象执行环境构建 (1)Spark Session对象 (2)代码演…...

KDChart3.0编译过程-使用QT5.15及QT6.x编译

文章目录 参考原文一、下载KDChart源文件二、下载安装CMake三、编译Qt5.15.0 编译Qt6.x 编译使用Qt6.X编译的直接看这最快 四、使用测试方法一:测试方法二: 参考原文 记录我的KDChart3.0编译过程 系统:win11,Qt5.15 ,编…...

一、PHP环境搭建[phpstorm]

一、安装 1.php编写工具 地址:https://www.jetbrains.com/phpstorm/download/#sectionwindows 图示: 2.php环境 解释:建议使用phpstudy进行安装,安装较为简单 链接:https://www.xp.cn/ 图示: 二、第…...

光影之梦2:动画渲染前后对比,揭示视觉艺术的惊人转变!

动画渲染是影视艺术中不可或缺的一环,它赋予了角色和场景鲜活的生命。渲染过程中的光影、色彩、材质等元素,像是画家的调色板,将平淡无奇的线条和形状转化为充满韵味与情感的画面。动画角色仿佛拥有了自己的灵魂,无论是一颦一笑&a…...

pytorch_lightning:Validation sanity check: 0%| | 0/2 [00:00<?, ?it/s]

在使用Lighting架构辅助训练时,对于出现的下述情况的原因: 解释: 注意到“ Validation sanity check ”。这是因为Lightning在开始训练之前进行了两批验证。这是一种单元测试,以确保如果你在验证循环中有一个bug,你不…...

2、Linux权限理解

个人主页:Lei宝啊 愿所有美好如期而遇 目录 前言 Linux权限的概念 1.文件访问者的分(人) 2.文件类型和访问权限(事物属性) 3.文件权限值的表示方法 4.文件访问权限的相关设置方法 file指令 目录的权限 粘滞位 关于权限的总结 前言 在开始Linux权限理…...

Linux 通过 sed 命令过滤指定日期的日志文件并输出到新文件

sed -n /2023-10-18T09:00:00/,/2023-10-18 12:00:00/p mysql_slow.log > out.log...

景联文科技:针对敏感数据的安全转录服务,护航信息安全

针对数据的安全转录服务,主要是为了确保数据在转录过程中的安全性和隐私保护。这些服务通常会采用一系列严格的安全措施,如数据加密、访问控制、数据脱敏等,以确保敏感数据不会被泄露或滥用。 景联文科技提供特定的数据转录服务,以…...

Excel宏(VBA)自动化标准流程代码

自动化流程 我们对一个报表进行自动化改造会经历的固定流程,这里称为“流水线”,通常包含以下流程: 打开一个表格选择打开的表格选择表格中的Sheet选择Sheet中的单元格区域 (有时候需要按条件筛选)复制某个区域 粘贴…...

vue vue3开发 vue2和vue3的选择

现在vue新建项目,官方给出的命令是 npm create vuelatest项目默认vue3,他是不支持IE11 如果想支持IE11用下面方法,项目vue2.7.7 npm create vuelegacy他们的打包工具默认vite,不是webpack。老手要注意生成的项目中的示例组件使…...

华为OD 数列描述(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应往年部分考题以及新出的题目。 我将持续更新最新题目 我精选了一部分题目免费分享给大家,可前往夸克网盘转存,请点击以下链接进入: 我用夸克网盘分享了「华为OD题库J…...

μCOS-Ⅲ中断管理,这样理解非常简单!

μCOS-Ⅲ中断管理,这样理解非常简单! 文章目录 μCOS-Ⅲ中断管理,这样理解非常简单!前言一、中断源与中断优先级二、μCOS-Ⅲ的中断管理方式三、中断屏蔽与中断控制1、μCOS-Ⅲ中断开关2、μCOS-Ⅲ中断屏蔽应用——临界区4、μCOS…...

Vue 项目进行 SEO 优化

SSR 服务器渲染 服务端渲染, 在服务端 html 页面节点, 已经解析创建完了, 浏览器直接拿到的是解析完成的页面解构 关于服务器渲染:Vue 官网介绍 ,对 Vue 版本有要求,对服务器也有一定要求,需要支持 nodejs 环境。 优势: 更好的 …...

【C++入门篇】保姆级教程篇【上】

目录 一、第一个C程序 二、C命名空间 1)什么是命名空间? 2)命名空间的使用 3) std库与namespace展开 4)命名空间的嵌套使用 三、输入输出方式 四、缺省参数 1)什么是缺省参数? 2&#xff0…...

用傲梅分区软件分割分区重启系统蓝屏BAD_SYSTEM_CONFIG_INFO,八个解决参考方案

环境: Win11 专业版 HP 笔记本 傲梅分区软件 闪迪16G U盘 Win10 官方镜像文件 Win11PE 系统安装U盘 USB固态硬盘盒 问题描述: 起因 开始使用windows自动磁盘管理工具压缩不了磁盘,提示无法将卷压缩到超出任何不可移动的文件所在点,关闭系统保护还原,删除系统创建…...

7-1、S曲线加减速原理【51单片机控制步进电机-TB6600系列】

摘要:本节介绍步进电机S曲线相关内容,总共分四个小节讨论步进电机S曲线相关内容   根据上节内容,步进电机每一段的速度可以任意设置,但是每一段的速度都会跳变,当这个跳变值比较大的时候,电机会发生明显的…...

golang 通過ssh連接遠程服務器 控制

1.下載依賴 go get golang.org/x/crypto/ssh 2.import import ("fmt""log""time""golang.org/x/crypto/ssh" )3.使用 func pwdConnect(sshHost, sshUser, sshPassword string, sshPort int) (*ssh.Client, error) {// 创建ssh登录…...

智能化时代的数据集成技术革新

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

如何用OpenShamrock打造智能QQ机器人:从零开始的完整指南

如何用OpenShamrock打造智能QQ机器人:从零开始的完整指南 【免费下载链接】OpenShamrock A Bot Framework based on Xposed with OneBot11 项目地址: https://gitcode.com/gh_mirrors/op/OpenShamrock OpenShamrock是一款基于Xposed框架实现的QQ机器人开发工…...

【飞控】QGroundControl与Mission Planner:如何根据项目需求选择最佳地面站

1. 两款地面站软件的核心定位差异 第一次接触无人机开发时,我也曾被QGroundControl和Mission Planner搞得晕头转向。这两款软件就像工具箱里的不同工具,关键是要知道什么时候该用哪一把。QGroundControl(简称QGC)给我的第一印象是…...

从《魔兽世界》到你的项目:拆解一个高可用的Unity Buff系统架构设计

从《魔兽世界》到你的项目:拆解一个高可用的Unity Buff系统架构设计 在MMO游戏的黄金时代,《魔兽世界》的Buff系统曾让无数玩家着迷——从圣骑士的光环到法师的变形术,每个效果背后都隐藏着精密的系统设计。如今,这些经过千万级用…...

生物信息学实战指南 | GSEA富集分析从原理到R语言实现

1. GSEA富集分析入门:为什么它比传统方法更强大 第一次接触GSEA(Gene Set Enrichment Analysis)时,我和大多数初学者一样困惑:明明已经有GO和KEGG这些传统富集分析方法了,为什么还要用GSEA?直到…...

UE5.0.3打包Linux报错?手把手教你搞定BlueprintJson插件缺失问题

UE5.0.3 Linux打包报错终极指南:BlueprintJson插件问题的深度解析与实战修复 当你满怀期待地在UE5.0.3中点击"打包Linux"按钮,却看到屏幕上弹出关于BlueprintJson插件的红色错误信息时,那种挫败感我深有体会。作为一名经历过无数次…...

5个步骤搞定苹果设备Windows连接:从无法识别到无缝协作

5个步骤搞定苹果设备Windows连接:从无法识别到无缝协作 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mi…...

Qwen3-0.6B-FP8与STM32开发联动:生成嵌入式系统控制逻辑伪代码

Qwen3-0.6B-FP8与STM32开发联动:生成嵌入式系统控制逻辑伪代码 1. 引言 如果你是一位嵌入式开发者,或者正在学习STM32,下面这个场景你一定不陌生:拿到一个传感器模块,比如温湿度传感器,想用它来控制一个风…...

3个跨设备游戏自由:Sunshine如何用开源技术打造无缝串流体验

3个跨设备游戏自由:Sunshine如何用开源技术打造无缝串流体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在数字娱乐多元化的今天,游戏玩家常面临高性能…...

intv_ai_mk11保姆级教学:输入‘你好’→追问第2点→指定表格输出,完整交互链路演示

intv_ai_mk11保姆级教学:输入你好→追问第2点→指定表格输出,完整交互链路演示 1. 快速了解intv_ai_mk11 intv_ai_mk11是一款基于Llama架构的AI对话助手,拥有7B参数规模,运行在GPU服务器上。它能帮助你完成各种任务,…...