12. kubernetes调度——污点Taint和容忍Toleration
kubernetes调度——污点Taint和容忍Toleration
- 一、通过节点属性调度
- 1、节点名称
- 2、节点标签
- 2.1 查看节点标签
- 2.2 添加标签
- 2.3 修改标签
- 2.4 删除标签
- 2.5 通过节点标签进行调度
- 二、污点Taint和容忍Toleration
- 1、污点Taint
- 1.1 查看Master节点的污点
- 1.2 添加污点
- 1.3 删除污点
- 2、容忍Toleration
一、通过节点属性调度
1、节点名称
[root@k8s-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master.linux.com Ready control-plane 127d v1.29.1
k8s-node01.linux.com Ready <none> 127d v1.29.1
k8s-node02.linux.com Ready <none> 127d v1.29.1
apiVersion: apps/v1
kind: Deployment
metadata:name: test1
spec:replicas: 2selector:matchLabels:app: test1template:metadata:labels:app: test1spec:nodeName: k8s-node02.linux.com // 指定工作节点名称containers:- name: test1image: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"
[root@k8s-master schedulerTest]# kubectl create -f test1.yaml
deployment.apps/test1 created
[root@k8s-master schedulerTest]#
[root@k8s-master schedulerTest]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test1-d69854cd5-jgpvm 1/1 Running 0 7s 10.88.242.139 k8s-node02.linux.com <none> <none>
test1-d69854cd5-tzx6l 1/1 Running 0 7s 10.88.242.138 k8s-node02.linux.com <none> <none>
2、节点标签
2.1 查看节点标签
[root@k8s-master schedulerTest]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master.linux.com Ready control-plane 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master.linux.com,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node01.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01.linux.com,kubernetes.io/os=linux
k8s-node02.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02.linux.com,kubernetes.io/os=linux
2.2 添加标签
[root@k8s-master schedulerTest]# kubectl label node k8s-node01.linux.com disk=ssd
node/k8s-node01.linux.com labeled
[root@k8s-master schedulerTest]# kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master.linux.com Ready control-plane 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master.linux.com,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node01.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disk=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01.linux.com,kubernetes.io/os=linux
k8s-node02.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02.linux.com,kubernetes.io/os=linux
2.3 修改标签
[root@k8s-master schedulerTest]# kubectl label node k8s-node01.linux.com disk=full --overwrite
node/k8s-node01.linux.com labeled
[root@k8s-master schedulerTest]# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
k8s-master.linux.com Ready control-plane 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master.linux.com,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=
k8s-node01.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disk=full,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node01.linux.com,kubernetes.io/os=linux
k8s-node02.linux.com Ready <none> 127d v1.29.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node02.linux.com,kubernetes.io/os=linux
[root@k8s-master schedulerTest]#
2.4 删除标签
[root@k8s-master schedulerTest]# kubectl label node k8s-node01.linux.com disk-
node/k8s-node01.linux.com unlabeled
2.5 通过节点标签进行调度
apiVersion: apps/v1
kind: Deployment
metadata:name: test2
spec:replicas: 2selector:matchLabels:app: test2template:metadata:labels:app: test2spec:nodeSelector: // 节点标签 ram: highercontainers:- name: test2image: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"
二、污点Taint和容忍Toleration
污点、容忍配合使用,避免pod被分配不合适的机器
1、污点Taint
污点,本质上就是个key-value
1.1 查看Master节点的污点
[root@k8s-master schedulerTest]# kubectl describe node k8s-master.linux.com | grep -i taint
Taints: node-role.kubernetes.io/control-plane:NoSchedule
1.2 添加污点
格式:# kubectl taint node <节点名称> key=value:{NoSchedule|NoExecute|PreferNoSchedule}
污点策略:
-
NoSchedule
新建的POD不会再向该节点调度
已经运行在该节点的POD不会受影响 -
NoExecute
新建的POD不会再向该节点调度
已经运行在该节点的POD同时也会被驱逐 -
PreferNoSchedule
尽量不向该节点调度新建的POD
[root@k8s-master schedulerTest]# kubectl taint node k8s-node02.linux.com fan=error:NoExecute
node/k8s-node02.linux.com tainted[root@k8s-master schedulerTest]# kubectl describe node k8s-node02.linux.com | grep -i taint
Taints: fan=error:NoExecute
1.3 删除污点
格式:# kubectl taint node <节点名称> key:{NoSchedule|NoExecute|PreferNoSchedule}-
2、容忍Toleration
apiVersion: apps/v1
kind: Deployment
metadata:name: test5
spec:replicas: 2selector:matchLabels:app: test5template:metadata:labels:app: test5spec:containers:- name: test5image: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"tolerations: // 容忍fan=error这个污点- key: "fan"operator: "Equal"value: "error"effect: NoExecute
[root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test5-7575ffc867-hs9hf 1/1 Running 0 2m1s 10.88.242.129 k8s-node02.linux.com <none> <none>
test5-7575ffc867-lp4k2 1/1 Running 0 2m1s 10.88.201.193 k8s-node01.linux.com <none> <none>相关文章:
12. kubernetes调度——污点Taint和容忍Toleration
kubernetes调度——污点Taint和容忍Toleration 一、通过节点属性调度1、节点名称2、节点标签2.1 查看节点标签2.2 添加标签2.3 修改标签2.4 删除标签2.5 通过节点标签进行调度 二、污点Taint和容忍Toleration1、污点Taint1.1 查看Master节点的污点1.2 添加污点1.3 删除污点 2、…...
第100+18步 ChatGPT学习:R实现SVM分类
基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言,不想学Python咯。 答曰:可!用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了,就帮各位搬运一下吧。 二、R代码实现SVM分类 (1&a…...
react函数学习——useState函数
在 React 中,useState 是一个钩子(hook),用于在函数组件中添加状态管理功能。它返回一个数组,包含两个元素: 当前状态值(selectedValue):这是状态的当前值。更新状态的函…...
方天云智慧平台系统 GetCompanyItem SQL注入漏洞复现
0x01 产品简介 方天云智慧平台系统,作为方天科技公司的重要产品,是一款面向企业全流程的业务管理功能平台,集成了ERP(企业资源规划)、MES(车间执行系统)、APS(先进规划与排程)、PLM(产品生命周期)、CRM(客户关系管理)等多种功能模块,旨在通过云端服务为企业提供…...
C语言同时在一行声明指针和整型变量
如果这么写, int *f, g; 并没有声明2个指针,编译器自己会识别,f是一个指针,g是一个整型变量; void CTszbView::OnDraw(CDC* pDC) {CTszbDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for nat…...
thinkphp框架远程代码执行
一、环境 vulfocus网上自行下载 启动命令: docker run -d --privileged -p 8081:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP192.168.131.144 8e55f85571c8 一定添加--privileged不然只能拉取环境首页不显示 二、thinkphp远程代码执行 首页&a…...
【公式】博弈论中的核心算法:纳什均衡公式解析
博弈论中的核心算法:纳什均衡公式解析 纳什均衡的基本概念 纳什均衡是博弈论中的一个核心概念,它描述了一个博弈中所有参与者都无法通过单方面改变自己的策略来增加收益的状态。在纳什均衡状态下,每个参与者的策略都是对其他参与者策略的最优反应。纳什均衡的公式可以表示…...
计算机网络面试题2
WebSocket相关知识 什么是WebSocket? WebSocket是一种基于TCP连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据 WebSocket和HTTP有什么区别? 1.WebSocket是双向通信协议,HTTP是单向通信协议 2.WebSocket使用ws://或者wss:/…...
Linux网络——深入理解传入层协议TCP
目录 一、前导知识 1.1 TCP协议段格式 1.2 TCP全双工本质 二、三次握手 2.1 标记位 2.2 三次握手 2.3 捎带应答 2.4 标记位 RST 三、四次挥手 3.1 标记位 FIN 四、确认应答(ACK)机制 五、超时重传机制 六 TCP 流量控制 6.1 16位窗口大小 6.2 标记位 PSH 6.3 标记…...
快速搞定分布式RabbitMQ---RabbitMQ进阶与实战
本篇内容是本人精心整理;主要讲述RabbitMQ的核心特性;RabbitMQ的环境搭建与控制台的详解;RabbitMQ的核心API;RabbitMQ的高级特性;RabbitMQ集群的搭建;还会做RabbitMQ和Springboot的整合;内容会比较多&#…...
5万字长文吃透快手大数据面试题及参考答案(持续更新)
目录 Flink为什么用aggregate()不用process() 为什么使用aggregate() 为什么不用process() 自定义UDF, UDTF实现步骤,有哪些方法?UDTF中的ObjectInspector了解吗? 自定义UDF实现步骤 自定义UDTF实现步骤 UDTF中的ObjectInspector Spark Streaming和Flink的区别 Flu…...
WordPress原创插件:启用关闭经典编辑器和小工具
WordPress原创插件:启用关闭经典编辑器和小工具 主要功能 如图所示,用于启用或禁用经典编辑器和经典小工具,以替代Gutenberg编辑器。 插件下载 https://download.csdn.net/download/huayula/89592822...
萝卜快跑:自动驾驶的先锋与挑战
萝卜快跑:自动驾驶的先锋与挑战 萝卜快跑作为自动驾驶领域的重要参与者,被视为自动驾驶的先锋。它代表了自动驾驶技术在实际应用中的重要突破,为人们的出行方式带来了革新。萝卜快跑的发展展示了自动驾驶技术的巨大潜力,如提高交通…...
得到xml所有label 名字和数量 get_xml_lab.py,get_json_lab.py
import os import xml.etree.ElementTree as ETrootdir2 r"F:\images3\xmls" file_list os.listdir(rootdir2) # 列出文件夹下所有的目录与文件# 初始化字典 classes_dict {}for file_name in file_list:path os.path.join(rootdir2, file_name)if os.path.isfi…...
数据结构算法-排序(二)
插入排序 插入排序核心 假设数组中的一部数据已经排好序,要插入的数据和这些数据进行比较,直到找到合适的位置插入新数据。 插入排序步骤 插入排序主要有以下步骤构成: 假设有序,我们假设**a[0]**已经排好序待插入的数据为a[j]…...
Linux安装与配置
下载VMware 首先我们需要下载一个叫VMware的软件: 进入官方下载,地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html选择与自己电脑版本适配的VMware版本【 输入许可证密钥 MC60H-DWHD5-H80U9-6V85…...
AI赋能交通治理:非机动车监测识别技术在城市街道安全管理中的应用
引言 城市交通的顺畅与安全是城市管理的重要组成部分。非机动车如自行车、电动车、摩托车等在城市交通中扮演着重要角色,但同时也带来了管理上的挑战。尤其是在机动车道上误入非机动车的现象,不仅影响交通秩序,还可能引发交通事故。思通数科…...
水电站泄洪放水预警广播系统解决方案
一、背景 在现代水利工程管理中,水电站泄洪放水预警广播系统扮演着至关重要的角色。这一系统不仅关系到水电站的安全运行,也直接关系到下游地区人民群众的生命财产安全。因此,设计一套完善、高效、可靠的泄洪放水预警广播系统显得尤为必要。…...
【Django】ajax和django接口交互(获取新密码)
文章目录 一、需求1. 效果图 二、实验1. 写get接口后端2. 写html后端3. 写前端4. 测试 一、需求 1. 效果图 二、实验 1. 写get接口后端 写views import string import random def getnewpwd(request):words list(string.ascii_lowercasestring.ascii_uppercasestring.digi…...
Logback 日志打印导致程序崩溃的实战分析
在软件开发和运维中,日志记录是必不可少的一环,帮我们追踪程序的行为,定位问题所在。然而,有时日志本身却可能成为问题的根源。本文将通过一个真实的案例来探讨 Logback 日志系统中的一个常见问题,当并发量大ÿ…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...
VSCode 使用CMake 构建 Qt 5 窗口程序
首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...
RabbitMQ 各类交换机
为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息:将消息…...
