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

文章目录

    • 一、概念
    • 二、实操节点亲和力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: 3selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: nginxoperator: Invalues:- permitcontainers:- name: nginx-containerimage: nginx:latestports:- name: nginx-portcontainerPort: 80protocol: 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: 3selector:matchLabels:app: nginx-podaffinitytemplate:metadata:labels:app: nginx-podaffinityspec:affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- nginx-podtopologyKey: kubernetes.io/hostnamecontainers:- name: nginx-containerimage: nginx:latestports:- name: nginx-portcontainerPort: 80protocol: TCP
    
  2. 创建pod:kubectl apply -f /opt/nginx_podaffinity.yaml

  3. 查看:kubectl get pod -o wide

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

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

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

相关文章

手撕Vue-数据驱动界面改变下

经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变。 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个步骤处,我写了…

Docker逃逸---授权 SYS_ADMIN Capability逃逸原理浅析

目录 一、产生原因 二、利用条件 三、复现过程 1、容器内挂载宿主机cgroup 2、设置notify_no_release并寻找容器在宿主机上的存储路径 3、将恶意脚本写入release_agent 一、产生原因 给容器额外授权了SYS_ADMIN Cap,并且容器以root权限运行,攻击者…

数据结构----算法--五大基本算法

数据结构----算法–五大基本算法 一.贪心算法 1.什么是贪心算法 在有多个选择的时候不考虑长远的情况,只考虑眼前的这一步,在眼前这一步选择当前的最好的方案 二.分治法 1.分治的概念 分治法:分而治之 将一个问题拆解成若干个解决方式…

计算机毕业设计--基于SSM+Vue的物流管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

基于寄生捕食优化的BP神经网络(分类应用) - 附代码

基于寄生捕食优化的BP神经网络(分类应用) - 附代码 文章目录 基于寄生捕食优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.寄生捕食优化BP神经网络3.1 BP神经网络参数设置3.2 寄生捕食算法应用 4.测试结果…

QT中使用QMediaPlayer + QVideoWidget播放视频

QT中使用QMediaPlayer QVideoWidget播放视频 项目中有要在qt中播放视频的要求,这里做下记录 CMakeLists.txt文件编写 主要修改如下两处 find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets multimedia multimediawidgets) find_package(Qt${QT_VERSIO…

【JVM】JVM类加载机制

JVM类加载机制 加载双亲委派模型 验证准备解析初始化 JVM的类加载机制,就是把类,从硬盘加载到内存中 Java程序,最开始是一个Java文件,编译成.class文件,运行Java程序,JVM就会读取.class文件,把文件的内容,放到内存中,并且构造成.class类对象 加载 这里的加载是整个类加载的一…

RabbitMQ概述,死信队列

RabbitMQ(Rabbit Message Queue)是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP)并提供可靠的消息传递机制。RabbitMQ 在分布式系统中广泛用于消息传递和事件驱动的架构。以下是一些 RabbitMQ 的重要知识点…

阿里云2023年双十一优惠活动整理

随着双十一的临近,阿里云也为大家准备了一系列优惠活动。作为国内知名的云服务提供商,阿里云在双十一期间推出了多种优惠政策和福利,让用户在享受优质云服务的同时,也能节省一些费用。本文将对阿里云双十一优惠活动进行详细整理&a…

25.0 MySQL 数据库概述

1. 数据库介绍 1.1 简介 数据库是用于存储, 管理和组织数据的一种技术.使用数据库有以下几个重要的原因: * 1. 数据的持久化存储: 数据库可以将数据持久地保存在磁盘上, 确保数据在计算机系统关闭或发生故障时不会丢失.这样可以保证数据的安全性和可靠性.* 2. 数据共享和协作…

工程管理系统源码之全面+高效的工程项目管理软件

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…

软考高级系统架构设计师系列之:快速掌握软件工程核心知识点

软考高级系统架构设计师系列之:快速掌握软件工程核心知识点 一、软件开发方法二、软件开发模型三、软件开发模型-瀑布模型四、软件开发模型-经典模型汇总五、软件开发模型-增量模型与螺旋模型六、软件开发模型-V模型七、软件开发模型-构件组装模型八、软件开发模型-统一过程九…

【nginx】监听80端口不生效问题

技巧:查询当前nginx监听的端口号有哪些 sudo netstat -tulpn | grep nginx 我是学自这篇文章 Nginx在配置监听80端口不生效问题_nginx启动监听不到9090端口_乌鸦啊的博客-CSDN博客Nginx安装之后在/etc/nginx/nginx.conf配置文件引用其它文件的配置,如…

Flink kafka 数据汇不指定分区器导致的问题

背景 在flink中,我们经常使用kafka作为flink的数据汇,也就是目标数据的存储地,然而当我们使用FlinkKafkaProducer作为数据汇连接器时,我们需要注意一些注意事项,本文就来记录一下 使用kafka数据汇连接器 首先我们看…

PHP和JAVA AES加解密问题

1.问题 php加密的java不能正常机密&#xff0c;java加密的php不能正常解密 2.前置参数 key 32位 iv 16位 3.问题解决 因为key是32位的&#xff0c;所以参数需要$methodAES-256-CBC,$options1 4.PHP代码 <?php /**** Created by PhpStorm* User: Noah* Date: 2023/10/10*…

[QCM6125][Android13] 屏蔽Launcher3桌面的搜索栏

文章目录 开发平台基本信息解决方法 开发平台基本信息 芯片: QCM6125 版本: Android 13 kernel: msm-4.14 解决方法 去掉原生Launcher3桌面的搜索栏 --- a/packages/apps/Launcher3/res/layout/search_container_workspace.xmlb/packages/apps/Launcher3/res/layout/search…

SpringBoot面试题3:Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? Spring Boot 的核心注解是 @SpringBootApplication。 @SpringBootApplication 是一…

纽交所上市公司安费诺宣布将以1.397亿美元收购无线解决方案提供商PCTEL

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;纽交所上市公司安费诺(APH)宣布将以每股7美元现金&#xff0c;总价格1.397亿美元收购无线解决方案提供商PCTEL(PCTI)。 该交易预计将在第四季度或2024年初完成。 Lake Street Capital Markets担任…

1.SpringSecurity -快速入门、加密、基础授权

SpringSecurity简介 文章目录 SpringSecurity简介一、基本概念1.1 认证&#xff08;Authentication&#xff09;方式1.2 会话(Session)介绍1.3 授权(Authorization)介绍1.4 RBAC 二、SpringSecurity入门2.1 快速入门2.1.1 Maven坐标2.1.2 接口2.1.3 源码 2.2 配置文件配置用户名…

[netty-websocket-boot-starter] 轻量、高性能的WebSocket框架

简介 这是一个轻量级、高性能的基于 Netty 的 WebSocket 框架&#xff0c;提升你的 WebSocket 开发体验&#xff0c;为 Spring Boot 带来全新的 WebSocket 功能。 该项目使你可以轻松集成 WebSocket 到你的 Spring Boot 项目中&#xff0c;提供了 Tomcat WebSocket 的简单性&a…