k8s调度(pod亲和、反亲和、污点、容忍度)
pod亲和性
针对对象为Pod,目的是实现,新建Pod和目标Pod调度到一起,在同一个Node上。
示例:
apiVersion: v1
kind: Pod
metadata:name: testpod01labels:app: myapp01env: test1
spec:containers:- name: testpod01image: nginx:1.23.2---
apiVersion: v1
kind: Pod
metadata:name: testpod02labels:app: myapp02env: test2
spec:affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution: ##必须满足下面匹配规则- labelSelector:matchExpressions:- key: appoperator: In values:- myapp01 ## app=myapp01, 上面的Pod是符合要求的topologyKey: "kubernetes.io/hostname"containers:- name: testpod02image: redis:6.2
用上面两个yaml文件,创建两个在同一个node上的两个pod。
kubectl apply -f testpod1.yaml
kubectl apply -f testpod2.yamlkubectl get po -o wide #观察两个pod被分配到相同的node上
kubectl get node --show-labels
kubectl get pods --show-labels
Pod反亲和性
针对对象为Pod,目的是实现,新建Pod和目标Pod不要调度到一起,不在同一个Node上。
如果之前有测试pod,先删除然后再做下面实验
kubectl delete -f testpod2.yaml
修改testpod2.yaml,示例:
apiVersion: v1
kind: Pod
metadata:name: testpod01labels:app: myapp01env: test1
spec:containers:- name: testpod01image: nginx:1.23.2---
apiVersion: v1
kind: Pod
metadata:name: testpod02labels:app: myapp02env: test2
spec:affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution: ##必须满足下面匹配规则- labelSelector:matchExpressions:- key: appoperator: In values:- myapp01 ## app=myapp01, 上面的Pod是符合要求的topologyKey: "kubernetes.io/hostname"containers:- name: testpod02image: redis:6.2
然后部署,查看是否反亲和:
kubectl apply -f testpod2.yamlkubectl get po -o wide
污点与容忍度
污点(Taint)针对节点来说,和节点亲和性正好相对,节点亲和性使Pod被吸引到一类特定的节点,而污点则使节点能够排斥一类特定的Pod。
容忍度(Toleration)应用于Pod上,它用来允许调度器调度带有对应污点的节点。 容忍度允许调度但并不保证调度:作为其功能的一部分, 调度器也会评估其他参数。
污点和容忍度(Toleration)相互配合,可以避免Pod被分配到不合适的节点上。 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的Pod, 是不会被该节点接受的。
一般使用在daemonset上。对master节点,做保护作用。
设置污点命令格式:
kubectl taint node [node] key=value:[effect]
说明:
其中[effect]
可取值:[ NoSchedule | PreferNoSchedule | NoExecute ]
:
- NoSchedule :一定不能被调度,已经在运行中的Pod不受影响。
- PreferNoSchedule:尽量不要调度,实在没有节点可调度再调度到此节点。
- NoExecute:不仅不会调度,还会驱逐Node上已有的Pod。
清除污点命令格式:
kubectl taint node [node] key:[effect]-
设置污点示例:
kubectl taint node rocky9-2 name=rocky:NoSchedule
查看污点:
kubectl describe node rocky9-2 | grep Taints -A 10
清除污点:
kubectl taint node rocky9-2 name-
设置容忍度的几种规则:
1)完全匹配
tolerations:
- key:"taintKey" #和污点的key名字保持一致operator: "Equal" #匹配类型,Equal表示匹配污点的所有值value: "taintValue" #和污点key的值保持一致effect: "NoSchedule" #污点类型
说明:
Pod 的 Toleration声明中的key和effect需要与Taint的设置保持一致。
Operator如果设置为Equal,则key和value,要和Taint的设置保持一致。
2)不完全匹配
tolerations:
- key: "taintKey" #和污点的key名字保持一致operator: "Exists" #匹配类型,只要符合污点设置的key即可effect: "NoSchedule" #污点的类型
说明:
Operator如果设置为Exists,则不需要指定value,只看key名字
3)大范围匹配
tolerations:
- key: "taintKey" #和污点的key名字保持一致operator: "Exists"
说明:
如果不设置effect,则只需要看key名字即可,不管Taint里的effect设置为什么都会匹配到
4)匹配所有
tolerations:- operator: "Exists"
说明:
如果省略key和effect,则匹配所有Taint,在k8s中的daemonsets资源默认情况下是容忍所有污点的。
驱逐延缓时间设置
tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect:"NoExecute"
tolerationSeconds:3600
说明:
如果这个Pod正在运行,那么Pod还将继续在节点上运行3600秒,然后被驱逐。如果在此之前上述污点被删除了,则Pod不会被驱逐。
完整Pod YAML示例:
apiVersion: v1
kind: Pod
metadata:name: nglabels:env: dev
spec:containers:- name: ngimage: nginx:1.21.0tolerations:- key: nameoperator: Existseffect: NoSchedule
然后部署
kubectl apply -f toleration.yaml
kubectl describe po ngkubectl delete -f toleration.yaml #删除,然后设计设置污点
kubectl apply -f toleration.yaml
相关文章:

k8s调度(pod亲和、反亲和、污点、容忍度)
pod亲和性 针对对象为Pod,目的是实现,新建Pod和目标Pod调度到一起,在同一个Node上。 示例: apiVersion: v1 kind: Pod metadata:name: testpod01labels:app: myapp01env: test1 spec:containers:- name: testpod01image: nginx:…...

智能制造核心领域:自动化、物联网、大数据分析、人工智能在现代制造业中的应用与融合
一、智能制造系统及领域 智能制造系统是一套集成的解决方案,它利用物联网(IoT)、大数据分析、人工智能(AI)、机器学习和云计算等技术,实现工厂和生产线的自动化、数据驱动和智能化。这些系统能够监控和控制…...

Android Studio 2024最新版Hello World
Android Studio 2024最新版Hello World 1. Android Studio 2024安装视频2. 创建项目Read Timed out 问题Android Studio Build Output 控制台中文乱码问题 3. 驱动管理 本文章介绍如何通过Android Studio 2024最新版创建项目, 并成功输出Hello World。 本次教程版本…...

请解释Java中的CountDownLatch和CyclicBarrier的区别和使用场景。什么是Java中的Semaphore?它如何控制并发访问?
请解释Java中的CountDownLatch和CyclicBarrier的区别和使用场景。 CountDownLatch 和 CyclicBarrier 是 Java 并发包(java.util.concurrent)中提供的两个非常有用的同步工具,它们都用于控制多个线程之间的同步,但它们的目的和使用…...

Django+Vue3前后端分离学习(五)(前端登录页面搭建)
1、如果需要使用组合式API,需要安装插件: npm install vite-plugin-vue-setup-extend --save-dev 在vite.config.js里配置: 首先导入: import VueSetupExtend from vite-plugin-vue-setup-extend 添加: 2、创建login.vue 然…...

虚拟机安装macos系统
虚拟机安装macOS系统是一个相对复杂但可行的过程,主要涉及前期准备、虚拟机软件安装、macOS镜像准备、虚拟机配置、系统安装及后续设置等多个步骤。以下是一个详细的教程,帮助您在虚拟机中成功安装macOS系统。 一、前期准备 1. 硬件要求 确保您的计算…...

AI基础 L9 Local Search II 局部搜索
Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时&#x…...

828华为云征文|使用sysbench对Mysql应用加速测评
文章目录 ❀前言❀测试环境准备❀测试工具选择❀测试工具安装❀mysql配置❀未开启Mysql加速测试❀开启Mysql加速测试❀总结 ❀前言 大家好,我是早九晚十二。 昨天有梳理一篇关于华为云最新推出的云服务器产品Flexus云服务器X。当时有说过,这次的华为云F…...

2024 年高教社杯全国大学生数学建模竞赛题目——D 题 反潜航空深弹命中概率问题的求解
2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) D 题 反潜航空深弹命中概率问题 应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军…...

【Kubernetes】常见面试题汇总(一)
目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目…...

简单实用的php全新实物商城系统
免费开源电商系统,提供灵活的扩展特性、高度自动化与智能化、创新的管理模式和强大的自定义模块,让电商用户零成本拥有安全、高效、专业的移动商城。 代码是全新实物商城系统源码版。 代码下载...

Leetcode面试经典150题-128.最长连续序列-递归版本另解
之前写过一篇这个题的,但是可能代码比较复杂,这回来个简洁版的,这个是递归版本 可以看看之前的版本,两个版本面试用哪个都保过 解法都在代码里,不懂就留言或者私信 class Solution {/**对于之前的解法,我…...

spring security 中的授权使用
一、认证 身份认证,就是判断一个用户是否为合法用户的处理过程。Spring Security 中支持多种不同方式的认证,但是无论开发者使用那种方式认证,都不会影响授权功能使用。因为 SpringSecurity 很好做到了认证和授权解耦。 二、授权 授权&#x…...

python安装以及访问openAI API
安装python 我是python小白,所以需要一步一步来,先安装。 一口吃不成胖子,记住。 从官网下载python,目前最新版本是3.12,但是据说稳定版3.11更好一点,所以,下载3.11,注意不要下载…...

【Unity小技巧】URP管线遮挡高亮效果
前言 在URP渲染管线环境下实现物体遮挡高亮显示效果,效果如下:Unity URP遮挡高亮 实现步骤 创建层级,为需要显示高亮效果的物体添加层级,比如Player 创建一个材质球,也就是高亮效果显示的材质球找到Universal Render…...

C#中的GDI和GDI+(Graphics Device Interface Plus)图形设备接口
GDI的概念 GDI(Graphics Device Interface)是微软Windows操作系统中的一个组件,它提供了一组API,用于在显示器或打印机等图形设备上进行图形绘制和图像处理。GDI 是 Windows 编程中用于二维图形和图像处理的接口。 GDI 的主要功…...

谷粒商城のNginx
文章目录 前言一、Nginx1、安装Nginx2、相关配置2.1、配置host2.2、配置Nginx2.3、配置网关 前言 本篇重点介绍项目中的Nginx配置。 一、Nginx 1、安装Nginx 首先需要在本地虚拟机执行: mkdir -p /mydata/nginx/html /mydata/nginx/logs /mydata/nginx/conf在项目…...

Debug-027-el-tooltip组件的使用及注意事项
前言: 这两天,碰到这个饿了么的el-tooltip比较多。这个组件使用起来也挺简单的,常用于展示鼠标 hover 时的提示信息。但是有一些小点需要注意。这里不再机械化的介绍文档,不熟悉的话可以先看一下: https://element-pl…...

猫眼电影字体破解(图片转码方法)
问题 随便拿一篇电影做样例。我们发现猫眼的页面数据在预览窗口中全是小方框。在当我们拿到源码以后,数据全是加密后的。所以我们需要想办法破解加密,拿到数据。 破解过程 1.源码获取问题与破解 分析 在我们刚刚请求url的时候是可以得到数据的ÿ…...

flink wordcount
Maven配置pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

组合模式(Composite Pattern)
使用组合模式(Composite Pattern)是一个更优雅的方式来表示菜单和菜单项。组合模式允许我们将单个对象(如菜单项)和组合对象(如菜单)以相同的方式处理。 解决方案: 创建组合结构:我…...

教你制作一本加密的样本册
在这个信息的时代,保护自己的隐私和知识产权变得尤为重要。你有没有想过,如何将自己珍贵的样本资料变成一本只有自己才能查看的加密宝典?今天,我就来教你制作一本加密的样本册 第一步,打开浏览器,搜索FLBOO…...

C语言进阶【1】--字符函数和字符串函数【1】
本章概述 字符分类函数字符转换函数strlen的使用和模拟实现strcpy的使用和模拟实现strcat的使用和模拟实现strcmp的使用和模拟实现彩蛋时刻!!! 字符分类函数 字符: 这个概念,我们在以前的文章中讲过了。我们键盘输入的…...

git提交自动带上 Signed-off-by信息
为了确保在使用 Signed-off-by 签名的同时保留你的提交消息,你需要修改 prepare-commit-msg 钩子脚本,以便它不会丢失原始的提交信息。 增加prepare-commit-msg 钩子以保留提交消息 prepare-commit-msg 钩子的目的是在提交信息文件中插入额外的内容&am…...

图论(2)
一、度 度统计的是一个节点上又多少条边 度出度入度 出度:统计以该节点为起始点箭头指向外面的边的条数 入度:统计箭头指向该节点的边数 度为1的节点为悬挂节点,边为悬挂边 用矩阵计算节点的度 二、握手定理 比如这里第一个集合里面有三…...

ASP.NET Core 入门教学十九 依赖注入ioc
ASP.NET Core内置了对依赖注入(Dependency Injection,简称DI)的支持,这是一种设计模式,用于实现控制反转(Inversion of Control,简称IoC),从而使得应用程序组件之间的耦合…...

omm kill 内存碎片化
内存频繁 OOM(Out of Memory)会导致内存碎片化,并进一步加剧无可用内存分配的问题。碎片化是内存管理中常见的问题,当系统频繁分配和释放内存时,内存空间会被分割成许多小块,虽然内存总量可能足够,但这些小块无法满足较大进程或数据的内存需求,最终导致系统无法找到足够…...

JS中给元素添加事件监听器的各种方法详解(包含比较和应用场景)
JavaScript 中给元素添加事件监听器的各种方法详解 在 JavaScript 中,事件处理是前端开发的一个重要部分。无论是点击按钮、提交表单,还是鼠标悬停,都涉及到事件监听。本文中,我将详细讲解各种给元素添加事件监听器的方法&#x…...

Python基本数据类型之复数complex
来源: “码农不会写诗”公众号 链接:Python基本数据类型之复数complex 文章目录 01 基本概念02 基本运算03 拓展1复数与向量 复数complex Python基本数据之复数(complex)即包含实部和虚部的数字。 01 基本概念 即包含实部和虚部的数字。 在Python中&am…...

第六届机器人与智能制造技术国际会议 (ISRIMT 2024)
目录 会议详情 主题 会议官网 会议详情 第六届机器人与智能制造技术国际研讨会(ISRIMT 2024)计划于2024年9月20-22日在常州举行。会议主要聚焦“机器人”和“智能制造技术”的研究领域,旨在为机器人和智能制造技术领域的专家学者、工程技术…...