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

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 团队发起的开源项目&#xf…...

简单实用的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的时候是可以得到数据的&#xff…...

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…...

支付宝秘钥模式说明

1 python服务器需要使用 PKCS1格式2 秘钥格式是不带头尾的&#xff0c;中间的纯字符串...

Z-Image-Turbo-辉夜巫女GPU利用率:监控xinference.log与nvidia-smi协同调参指南

Z-Image-Turbo-辉夜巫女GPU利用率&#xff1a;监控xinference.log与nvidia-smi协同调参指南 1. 引言&#xff1a;为什么需要关注GPU利用率&#xff1f; 当你部署好一个像Z-Image-Turbo-辉夜巫女这样的文生图模型&#xff0c;看着它生成精美的图片时&#xff0c;有没有想过一个…...

GG3M 项目独家原创理论:元模型的形式化结构

GG3M 项目独家原创理论&#xff1a;元模型的形式化结构本元模型是GG3M 贾子公理体系的形式化数学内核&#xff0c;是对全尺度复杂系统&#xff08;个人认知、企业经营、城市治理、国家战略、文明演化&#xff09;底层规律的顶层抽象&#xff0c;是 GG3M 所有子模型、应用场景、…...

保姆级教学:用星图AI云平台快速搭建Clawdbot,让Qwen3-VL:30B接入飞书

保姆级教学&#xff1a;用星图AI云平台快速搭建Clawdbot&#xff0c;让Qwen3-VL:30B接入飞书 1. 为什么选择本地部署多模态办公助手&#xff1f; 在日常办公中&#xff0c;我们经常遇到需要处理图片和文字的场景&#xff1a; 同事发来的产品截图需要快速分析内容会议白板照片…...

GameFramework——FileSystem篇

目录 一、快速入门 1.1 什么是文件系统模块&#xff1f; 1.2 基本使用步骤 1.2.1 创建文件系统 1.2.2 写入文件 1.2.3 读取文件 1.2.4 删除文件 1.2.5 加载已有文件系统 二、文件布局 2.1 HeaderData&#xff08;文件头&#xff09; 2.2 BlockData&#xff08;块数据…...

LoRa网关实战:5分钟搞定MQTT通信(附Java代码示例)

LoRa网关实战&#xff1a;5分钟搞定MQTT通信&#xff08;附Java代码示例&#xff09; 在物联网项目开发中&#xff0c;LoRa网关与服务器的高效通信是确保数据可靠传输的关键环节。MQTT协议凭借其轻量级、低功耗的特性&#xff0c;成为连接LoRa设备与云端服务的首选方案。本文将…...

AI绘图小说配图批量生成 小说插图制作神器 小说配图 动漫图片生成 低配显卡可用 解决图片一致性的问题 生成的图片一致性 可控

简介说明 AI绘图小说配图批量生成 小说插图制作神器 小说配图 动漫图片生成 低配显卡可用 把常见的出图流程整理成更容易操作、更适合生产使用的工作台&#xff0c;且支持低配显卡稳定运行&#xff0c;无需升级硬件即可流畅出图。 它可以帮助用户把“启动服务、填写提示词、切…...

RAGFlow与Dify共存方案:同一台Win11机器如何用Docker隔离部署

RAGFlow与Dify共存方案&#xff1a;同一台Win11机器如何用Docker隔离部署 在AI应用开发领域&#xff0c;RAGFlow和Dify作为两款热门工具&#xff0c;分别擅长知识库构建和AI应用编排。许多开发者面临一个现实挑战&#xff1a;如何在本地开发环境中同时运行这两个系统&#xff1…...

《算法竞赛从入门到国奖》算法基础:动态规划-最长子序列

&#x1f4a1;Yupureki:个人主页 ✨个人专栏:《C》 《算法》《Linux系统编程》《高并发内存池》《MySQL数据库》 《个人在线OJ平台》 &#x1f338;Yupureki&#x1f338;的简介: 目录 1. 最长上升子序列 算法原理 代码示例 2. 合唱队形 算法原理 代码示例 3. 最长公共…...

RMBG-2.0镜像免配置部署:无需配置Python环境,开箱即用Web交互界面

RMBG-2.0镜像免配置部署&#xff1a;无需配置Python环境&#xff0c;开箱即用Web交互界面 你是不是也遇到过这样的烦恼&#xff1f;想用AI模型给图片换个背景&#xff0c;结果光是安装Python环境、配置依赖库就折腾了大半天&#xff0c;最后还可能因为版本冲突、CUDA不兼容等问…...