9-k8s-亲和力与反亲和力

news2025/1/17 3:12:54

文章目录

    • 一、概念
    • 二、实操节点亲和力1
    • 三、实操pod亲和力2

一、概念

  1. 节点亲和力概念(反亲和力相反)

    ps:官方文档http://kubernetes.p2hp.com/docs/concepts/scheduling-eviction/assign-pod-node.html

    节点亲和力(Node Affinity)是在 Pod 上定义的一组约束,用于确定哪些节点适合进行调度,即使用亲和性规则为 Pod 的节点分配定义硬性要求和软性要求。类似于nodeSelector,你可以根据节点上的标签来约束Pod可以调度到哪些节点上。节点亲和性有两种:
    1)requiredDuringSchedulingIgnoredDuringExecution(硬亲和力):调度器只有在规则被满足的时候才能执行调度。 类似于nodeselector ,但其语法表达能力更强。
    2)preferredDuringSchedulingIgnoredDuringExecution(软亲和力):调度器会尝试寻找满足对应规则的节点。如果找不到匹配的节点,调度器仍然会调度该Pod。优选尽量满足匹配条件的节点。

  2. 亲和力匹配条件

    ln:满足一个就行
    NotIn:一个都不能满足,反亲和性
    Exists:只要存在,就满足
    DoesNotExist:只有不存在。才满足
    Gt:必须要大于节点上的数值才满足
    Lt:必须小于节点上的数值才满足
    

二、实操节点亲和力1

  1. 给node2打标签:kubectl label no worker2 nginx=permit

  2. 创建nginx的deploy,设置节点亲和: vi nginx-deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx-pod
      template:
        metadata:
          labels:
            app: nginx-pod
        spec:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: nginx
                    operator: In
                    values:
                    - permit
          containers:
            - name: nginx-container
              image: nginx:latest
              ports:
                - name: nginx-port
                  containerPort: 80
                  protocol: TCP
    
  3. 查看pod:kubectl get pod -o wide
    在这里插入图片描述

三、实操pod亲和力2

ps:根据节点上是否存在指定标签的pod,来判断pod是否调度到该节点

  1. 创建nginx的deploy,设置节点亲和: vi /opt/nginx_podaffinity.yaml

    ps:将pod节点部署到拥有app=nginx-pod的pod的节点上

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-podaffinity
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx-podaffinity
      template:
        metadata:
          labels:
            app: nginx-podaffinity
        spec:
          affinity:
            podAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchExpressions:
                  - key: app
                    operator: In
                    values:
                    - nginx-pod
                topologyKey: kubernetes.io/hostname
          containers:
            - name: nginx-container
              image: nginx:latest
              ports:
                - name: nginx-port
                  containerPort: 80
                  protocol: TCP
    
  2. 创建pod:kubectl apply -f /opt/nginx_podaffinity.yaml

  3. 查看:kubectl get pod -o wide

    ps:因为只有worker2满足,所以都部署到第二个去了
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1104399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自媒体人搞钱的5个AI工具

HI,同学们,我是赤辰,本期是第21篇AI工具类教程,文章底部准备了粉丝福利,看完后可领取!今天给大家分享一些基于个人创业需求场景,从产品设计图、网站搭建、logo设计、品牌设计,到图片…

CUDA学习笔记4——自定义设备函数

自定义设备函数 核函数:__global__修饰;在设备中执行;设备函数:__device__修饰;在设备中执行;只能被核函数或其他设备函数调用;主机函数:__host__修饰(可省略&#xff0…

【数据挖掘】数据挖掘、关联分析、分类预测、决策树、聚类、类神经网络与罗吉斯回归

目录 一、简介二、关于数据挖掘的经典故事和案例2.1 正在影响中国管理的10大技术2.2 从数字中能够得到什么?2.3 一个网络流传的笑话(转述)2.4 啤酒与尿布2.5 网上书店关联销售的案例2.6 数据挖掘在企业中的应用2.7 交叉销售 三、数据挖掘入门3.1 什么激发了数据挖掘…

中文编程开发语言工具开发的实际软件案例:称重管理系统软件

中文编程开发语言工具开发的实际软件案例:称重管理系统软件 中文编程开发语言工具开发的实际软件案例:称重管理系统软件,软件可以安装在电脑上,也可以安装在收银机上,支持触摸和鼠标点,想学编程可以关注系统…

损失函数总结(二):L1Loss、MSELoss

损失函数总结(二):L1Loss、MSELoss 1 引言2 损失函数2.1 L1Loss2.2 MSELoss 3 总结 1 引言 在上一篇博文中介绍了损失函数是什么以及为什么使用损失函数,从这一篇博文就开始关于损失函数有哪些进行进一步的介绍。这里放一张损失函…

电脑时间不准?简单几步教你恢复正常!

在日常使用电脑的过程中,我们经常依赖电脑的系统时间来同步文件、安排任务和进行各种在线活动。然而,有时候电脑的时间会不准确,这可能会导致一系列问题。本文将介绍三种常见的方法,帮助您解决电脑时间不准确的问题,确…

除氟树脂在工业、市政含氟废水处理中的应用

含氟废水的不达标排放对自然环境有很大的危害,氟化物离子可以累积在土壤和水体中,从而对生态系统造成破坏。大量的氟化物离子会对植物生长产生不良影响,并对水生生物造成毒性作用,严重时还可能导致生态灾难。氟化物离子如果没有得…

Linux内存管理 | 三、虚拟地址空间管理

我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! …

解决微信小程序导入项目报错: [app.json文件内容错误]app.json未找到

目录 场景描述 原因分析 解决方法 场景描述 使用微信开发者工具导入项目后,打开控制台,出现报错提示:[app.json文件内容错误]app.json 未找到,如下图: 原因分析 一级文件目录里确实找不到app.json文件&#xff0c…

上市公司专利申请、创新绩效测算(2000-2022年)

参照王治等(2022)的做法,团队对上市公司-创新绩效进行测算。应用企业当年的专利申请数量(Apply)和企业当年的发明专利申请数量(IApply)衡量企业创新绩效 一、数据介绍 数据名称:上市…

如何处理前端路由懒加载?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

C++初阶--C++入门(1)

文章目录 C语言与C命名空间命名空间的定义和使用 C的输入输出缺省参数函数重载引用赋值与引用引用在参数上的使用以及注意事项函数返回值的引用引用与值的时间效率比较常引用 C语言与C 很多初学者都会把这两门语言进行混淆,但其实这是两种不同的语言,C相…

零基础学习CSS

01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容)。 书写位置:title 标签下方添加 style 双标签,style 标签…

2023网络工程毕业设计选题推荐 - 计算机毕业设计题目大全

文章目录 0 简介1 如何选题2 最新网络工程选题2.1 Java web - SSM 系统2.2 大数据方向2.3 人工智能方向2.4 其他方向 4 最后 0 简介 学长搜集分享最新的网络工程专业毕设毕设选题,难度适中,适合作为毕业设计,大家参考。 学长整理的题目标准…

从文字到视频:借助ChatGPT与剪映轻松生成高质量视频(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

ChatGPT AIGC 实现Excel 交叉查找 Index+match 函数

行与列交叉多条件查找需求如下: 这个需求要使用Excel中最经典的组合函数Index+match函数。 函数公式可以交给ChatGPT AIGC来实现。 Prompt: 有一个表格A列为品牌,B列为月份,C列为销量,61行数据,请写出Excel函数公式根据E3单元格的品牌与F2单元格的月份查找对应的销量,…

合规合规,合规法规的挑战与解决方案

在当前数据安全威胁日益加剧的时代,无论是来自企业内部还是外部,您都需要采取积极主动的态度。政府方面也希望出于公民数据安全的考虑,确保对企业的IT操作进行监管。为了实现这一目标,政府或主管法定机构发布了关于企业IT操作的法…

《golang设计模式》第三部分·行为型模式-01-责任链模式(Chain of Responsibility)

文章目录 1 概念1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1 概念 责任链(Chain of Responsibility)是指将客户端请求处理的不同职责对象组成请求处理链。 客户端只需要将请求交付到该链上,而不需要关心链上含有哪些对象。请求…

5款CSS3选项框单选按钮样式(走过路过不要错过)

5款CSS3选项框单选按钮样式是一款创意好看的选项单选按钮样式特效。 样式如下: 文章顶部就是源码,如果下载不了(如果被弄成收费or要VPI才能下载)私一下我,第一次弄csdn的资源绑定,不行我重新弄成网盘的 百…

【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.7 拖放事件

本节对应的视频讲解:B_站_链_接 【QT开发笔记-基础篇】 第4章 事件 4.7 拖动事件 本章要实现的整体效果如下: QEvent::DragEnter ​ 当拖动文件进入到窗口/控件中时,触发该事件,它对应的子类是 QDragEnterEvent QEvent::DragLe…