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

kubernetes第七天

1.影响pod调度的因素

nodeName   节点名

resources     资源限制

hostNetwork   宿主机网络

污点

污点容忍

Pod亲和性

Pod反亲和性

节点亲和性

2.污点

通常是作用于worker节点上,其可以影响pod的调度

语法:key[=value]:effect

effect:[ɪˈfekt]

effect必须是NoSchedule、PreferNoSchedule或NoExecute。

NoSchedule: [noʊ,ˈskedʒuːl]

该节点不再接收新的Pod调度,但不会驱赶已经调度到该节点的Pod。

PreferNoSchedule: [prɪˈfɜːr,noʊ,ˈskedʒuː] 
该节点可以接受调度,但会尽可能将Pod调度到其他节点,换句话说,让该节点的调度优先级降低啦。

NoExecute:[ˈnoʊ,eksɪkjuːt] 
该节点不再接收新的Pod调度,与此同时,会立刻驱逐已经调度到该节点的Pod。

1.查看节点污点

kubectl describe nodes

2.创建10个pod,发现pod调度在232和233节点上

3.给k8s232打上污点

kubectl taint node k8s232 wudianmingzi=wudian:NoExecute


4.查看污点kubectl describe nodes|grep Taints,发现此时已经有污点

5.查看pod信息,发现此时所有pod都调度到k8s233上

6.移除污点:kubectl taint node k8s232 wudianmingzi-

7.移除污点,从新创建pod之后,pod能重新调度到pod上

命令总结:

查看污点:
kubectl describe nodes|grep Taints
制造污点帮助信息
kubectl taint --help
制造污点
kubectl taint node 节点名 key=value:NoExecute
value可省略
移除污点
kubectl taint node k8s232 key-NoExecute  移除现在节点所有的pod
NoSchedule 不移除,但是不会有新的pod
PreferNoSchedule  优先级降低

3.污点容忍

pod.spec.tolerations

spec:# 配置Pod的污点容忍tolerations:# 指定污点的key# 若不指定key,则operator的值必须为Exists,表示匹配所有的key- key: qq# 指定污点的valuevalue: ww# 指定污点的effect,有效值为: NoSchedule, PreferNoSchedule,NoExecute# 若不指定则匹配所有的影响度。effect: NoExecute# 表示key和value的关系,有效值为Exists, Equal。#    Exists:#      表示存在指定的key即可,若配置,则要求value字段为空。#    Equal:#      默认值,表示key=value。operator: Equal- key: weboperator: Exists- key: node-role.kubernetes.io/masteroperator: Exists# 如果不指定key,value,effect,仅配置"operator: Exists"表示无视任何污点!#- operator: Exists

例1:匹配所有key为web,value值为空,effect为NoExecute的污点

tolerations:
- key: "web"operator: "Exists"  # 当value为空时,使用Exists表示key存在即可effect: "NoExecute"

例2:匹配所有key为test,值为version1,effect为所有的污点

tolerations:
- key: "test"operator: "Equal"  # 当指定了具体的value时,使用Equal进行匹配value: "version1"effect: "*"  # "*"表示匹配所有可能的effect值

例3:忽视所有污点

tolerations:
- operator: "Exists"  # 使用Exists且不指定key和effect,表示容忍所有污点

补充:实现pod调度到特定两个pod上

给节点打标签:

kubectl label nodes k8s231 key=value

选择调度的节点(所有节点忽视所有污点,如上例三配置)

spec:nodeSelector:key=value...
注意:节点必须包含所有这里的标签,才会被选上

所有节点删除标签

kubectl label nodes --all  key-

但是这样子当两个节点,比如节点a,key=value1,key2=value2,此时无法满足,所有引入了亲和性。

4.节点亲和性

查看相关信息

三种类型:节点亲和性,pod亲和性,pod反亲和性

节点亲和性:

节点亲和性会匹配各个节点的标签,如果匹配成功则会调度到这个节点,如下代码,pod会调度到标签为eat=shaokao或者eat=longxia的节点上

affinity:# 定义节点的亲和性nodeAffinity:# 定义硬限制requiredDuringSchedulingIgnoredDuringExecution:# 定义节点的匹配条件nodeSelectorTerms:# 基于节点的标签进行匹配- matchExpressions:# 指定标签的key- key: eat# 指定标签的valuevalues:- shaokao- longxia# 指定key和value之间的对应关系operator: In# 指定key和value之间的对应关系,有效值如下:#   In:#     key的值必须在vlaues内。要求values不能为空。#   NotIn:#     和In相反。要求values不能为空。#   Exists:#     只要存在指定key即可,vlaues的值必须为空。#   DoesNotExist:#     只要不存在指定key即可,vlaues的值必须为空。#   Gt:#     表示大于的意思,values的值会被解释为整数。#   Lt:#     表示小于的意思,values的值会被解释为整数。

如图

5.pod亲和性与反亲和性

pod的亲和性,当拓扑域topologyKey匹配的节点标签的key匹配成功,则所有pod都往节点标签是这个key的节点调度,比方说在广州,深圳,佛山三地都有服务器,想让所有pod都调度到其中一地。如何实现:
1.给不同地址的节点打标签

kubectl label node k8s231 place=guangzhou

kubectl label node k8s232 place=shenzhun

kubectl label node k8s233 place=foshan

如图所示,通过设置节点亲和性,拓扑域topologyKey,设为标签的key(这里为place),即可完成上述需求。

此时所有pod都会调度到其中一地。

反亲和性:将podAddinity改为podAntiAffinity,其他不变,此时每个topologyKey标签只能调度一个pod。若没有足够的节点(每个节点的标签place的值应该与其他不同),则剩下的pod将会处于penging状态。

6.DaemonSet

DaemonSet概述:
    DaemonSet确保全部worker节点上运行一个Pod的副本。
    DaemonSet的一些典型用法:
        (1)在每个节点上运行集群守护进程(flannel等)
        (2)在每个节点上运行日志收集守护进程(flume,filebeat,fluentd等)
        (3)在每个节点上运行监控守护进程(zabbix agent,node_exportor等)
    温馨提示:
        (1)当有新节点加入集群时,也会为新节点新增一个Pod;
        (2)当有节点从集群移除时,这些Pod也会被回收;
        (3)删除DaemonSet将会删除它创建的所有Pod;
        (4)如果节点被打了污点的话,且DaemonSet中未定义污点容忍,则Pod并不会被调度到该节点上;("flannel案例")

相关文章:

kubernetes第七天

1.影响pod调度的因素 nodeName 节点名 resources 资源限制 hostNetwork 宿主机网络 污点 污点容忍 Pod亲和性 Pod反亲和性 节点亲和性 2.污点 通常是作用于worker节点上,其可以影响pod的调度 语法:key[value]:effect effect:[ɪˈfek…...

RK3588上CPU和GPU算力以及opencv resize的性能对比测试

RK3588上CPU和GPU算力以及opencv resize的性能对比测试 一.背景二.小结三.相关链接四.操作步骤1.环境搭建A.安装依赖B.设置GPU为高性能模式C.获取GPU信息D.获取CPU信息 2.调用OpenCL SDK获取GPU信息3.使用OpenCL API计算矩阵乘4.使用clpeak测试GPU的性能5.使用OpenBLAS测试CPU的…...

基于Centos 7系统的安全加固方案

创作不易,麻烦点个免费的赞和关注吧! 声明! 免责声明:本教程作者及相关参与人员对于任何直接或间接使用本教程内容而导致的任何形式的损失或损害,包括但不限于数据丢失、系统损坏、个人隐私泄露或经济损失等&#xf…...

IT行业的发展趋势

一、引言 IT(信息技术)行业自诞生以来,就以惊人的速度发展,不断改变着我们的生活、工作和社会结构。如今,随着技术的持续创新、市场需求的演变以及全球经济格局的变化,IT行业正迈向新的发展阶段&#xff0…...

《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》

《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》 一、多模态模型的崛起之路(一)从单一到多元:模态的融合演进(二)关键技术突破:解锁多模态潜能 二、开源多模态模型深度剖析(一&…...

ROS核心概念解析:从Node到Master,再到roslaunch的全面指南

Node 在ROS中,最小的进程单元就是节点(node)。一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。 从程序角度来说,node就是一个可执行文件&…...

2025广州国际汽车内外饰技术展览会:引领汽车内外饰发展新潮流-Automotive Interiors

随着科技的不断进步和消费者对汽车品质的要求日益提高,汽车内外饰的设计和制造也在不断创新和发展。AUTO TECH China 2025广州国际汽车内外饰技术展览会作为行业内的重要盛会,将于2025年11月20日至22日在广州保利世贸博览馆盛大举办。本次展览会将汇集全…...

ElasticSearch内存占用率过高怎么办?

文章目录 1,先用top看看各个进程的内存占用情况2,不能简单的杀死进程,然后再重启。3,查看一下ElasticSearch进程的具体启动情况4,修改Elasticsearch 的Java堆内存 1,先用top看看各个进程的内存占用情况 先…...

基于Qt的OFD阅读器开发原理与实践

摘要 本文详细探讨了基于Qt开发OFD阅读器的原理与实践。通过解析OFD文件格式、构建文档结构、实现页面渲染、处理用户交互以及进行性能优化,本文展示了如何使用Qt框架开发一个功能强大、性能优异的OFD阅读器。文章还提供了示例代码和未来发展方向,为开发…...

用 HTML5 Canvas 和 JavaScript 实现流星雨特效

最近在研究前端动画效果时,实现了一个超酷的流星雨特效,今天来和大家分享下具体实现过程。 1,整体实现思路 这个流星雨特效主要由 HTML、CSS 和 JavaScript 协同完成。HTML 搭建基础结构,CSS 负责页面样式设计,JavaScript 实现星星和流星的动态效果。 效果展示: 用 HTM…...

Apifox=Postman+Swagger+Jmeter+Mock

A. 开发人员接口管理使用(Swagger 工具管理接口) B. 后端开发人员通过Postman 工具,一边开发一边测试 C. 前端开发人员需要Mock 工具提供前端调用 D. 测试人员通过(Postman、Jmeter)等工具进行接口测试 为了后台开发、前端开发、测试工程师等不同角色更加便捷管理…...

SpringBoot多数据源架构实现

文章目录 1. 环境准备2. 创建Spring Boot项目3. 添加依赖4. 配置多数据源5. 配置MyBatis-Plus6. 使用多数据源7. 创建Mapper接口8. 实体类定义9. 测试多数据源10. 注意事项10.1 事务导致多数据源失效问题解决方案: 10.2 ClickHouse的事务支持10.3 数据源切换的性能开…...

HarmonyOS开发:传参方式

一、父子组件传参 1、父传子(Prop方式) 父组件代码 Entry Component struct ParentComponent {State parentMessage: string Hello from Parent;build() {Column() {ChildComponent({ message: this.parentMessage });}} } 子组件代码 Component s…...

OpenCV计算机视觉 07 图像的模块匹配

在做目标检测、图像识别时,我们经常用到模板匹配,以确定模板在输入图像中的可能位置 API函数 cv2.matchTemplate(image, templ, method, resultNone, maskNone) 参数含义: image:待搜索图像 templ:模板图像 method&…...

国产游戏崛起,燕云十六移动端1.9上线,ToDesk云电脑先开玩

游戏爱好者的利好消息出新了!网易大型武侠仙游《燕云十六声》正式官宣,移动端要在1月9日正式上线了!你期待手游版的燕云吗?不妨评论区留言说说你的看法。小编分别花了几个小时在台式机电脑和手机上都试了下,欣赏画面还…...

企业级PHP异步RabbitMQ协程版客户端 2.0 正式发布

概述 workerman/rabbitmq 是一个异步RabbitMQ客户端,使用AMQP协议。 RabbitMQ是一个基于AMQP(高级消息队列协议)实现的开源消息组件,它主要用于在分布式系统中存储和转发消息。RabbitMQ由高性能、高可用以及高扩展性出名的Erlan…...

[OPEN SQL] 限定选择行数

本次操作使用的数据库表为SCUSTOM&#xff0c;其字段内容如下所示 航班用户(SCUSTOM) 该数据库表中的部分值如下所示 指定查询多少行数据&#xff0c;我们可以使用语法UP TO n ROWS来实现对数据前n项的查询 语法格式 SELECT * FROM <dbtab> UP TO n ROWS 参数说明 db…...

Vite源码学习分享(一)

!](https://i-blog.csdnimg.cn/direct/971c35b61c57402b95be91d2b4965d85.png) 同一个项目 vite VS webpack启动速度对比...

定位,用最通俗易懂的方法2:TDOA与对应的CRLB

二郎就不设置什么VIP可见啥的了&#xff0c;这样大家都能看到。 如果觉得受益&#xff0c;可以给予一些打赏&#xff0c;也算对原创的一些鼓励&#xff0c;谢谢。 钱的用途&#xff1a;1&#xff09;布施给他人&#xff1b;2&#xff09;二郎会有更多空闲时间写教程 起因&…...

Linux第一课:c语言 学习记录day06

四、数组 冒泡排序 两两比较&#xff0c;第 j 个和 j1 个比较 int a[5] {5, 4, 3, 2, 1}; 第一轮&#xff1a;i 0 n&#xff1a;n个数&#xff0c;比较 n-1-i 次 4 5 3 2 1 // 第一次比较 j 0 4 3 5 2 1 // 第二次比较 j 1 4 3 2 5 1 // 第三次比较 j 2 4 3 2 1 5 // …...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...

基于django+vue的健身房管理系统-vue

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.8数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;PyCharm 系统展示 会员信息管理 员工信息管理 会员卡类型管理 健身项目管理 会员卡管理 摘要 健身房管理…...

网络安全问题及对策研究

摘 要 网络安全问题一直是近年来社会乃至全世界十分关注的重要性问题&#xff0c;网络关乎着我们的生活&#xff0c;政治&#xff0c;经济等多个方面&#xff0c;致力解决网络安全问题以及给出行之有效的安全策略是网络安全领域的一大目标。 本论文简述了课题的开发背景&…...