K8S学习之基础六:k8s中pod亲和性
Pod节点亲和性和反亲和性
podaffinity:pod节点亲和性指的是pod会被调度到更趋近与哪个pod或哪类pod。
podunaffinity:pod节点反亲和性指的是pod会被调度到远离哪个pod或哪类pod
1. Pod节点亲和性
requiredDuringSchedulingIgnoredDuringExecution: 硬亲和性
preferredDuringSchedulingIgnoredDuringExecution:软亲和性
vi pod-required-affinity-demo-1.yaml
apiVersion: v1
kind: Pod
metadata:name: nginxlabels:app: nginxtier: monitor
spec:containers:- name: nginximage: 172.16.80.140/nginx/nginx:1.26imagePullPolicy: IfNotPresent
kubectl apply -f pod-required-affinity-demo-1.yaml
kubectl get pods -owide

vi pod-required-affinity-demo-2.yaml
kind: Pod
metadata:name: busyboxlabels:app: backendtier: db
spec:containers:- name: busyboximage: 172.16.80.140/busybox/busybox:latestimagePullPolicy: IfNotPresentcommand: ["sh","-c","sleep 3600"]affinity:podAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- {key: app, operator: In, values: ["nginx"]}topologyKey: kubernetes.io/hostname

以上可以看出,第二个pod(busybox)由于设置了硬亲和性,需要和具有app=nginx的标签的pod在一起,所以也被创 建到了node01上
Pod节点反亲和性
vi pod-required-affinity-demo-3.yaml
kind: Pod
metadata:name: busybox1labels:app: backend1tier: db
spec:containers:- name: busybox1image: 172.16.80.140/busybox/busybox:latestimagePullPolicy: IfNotPresentcommand: ["sh","-c","sleep 3600"]affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- {key: app, operator: In, values: ["nginx"]}topologyKey: kubernetes.io/hostname

以上可以看出,第三个pod(backend)设置了pod发亲和性,和匹配的pod创建在了不同的node上
vi pod-required-affinity-demo-4.yaml
apiVersion: v1
kind: Pod
metadata:name: busybox2labels:app: backendtier: db
spec:containers:- name: busybox2image: 172.16.80.140/busybox/busybox:latestimagePullPolicy: IfNotPresentcommand: ["sh","-c","sleep 3600"]affinity:podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- {key: app, operator: In, values: ["nginx"]}topologyKey: kubernetes.io/hostname- labelSelector:matchExpressions:- {key: tier, operator: In, values: ["db"]}topologyKey: kubernetes.io/hostname



以上可以看出,因为busybox2的反亲和性,导致没有pod符合条件,只能是pending状态
相关文章:
K8S学习之基础六:k8s中pod亲和性
Pod节点亲和性和反亲和性 podaffinity:pod节点亲和性指的是pod会被调度到更趋近与哪个pod或哪类pod。 podunaffinity:pod节点反亲和性指的是pod会被调度到远离哪个pod或哪类pod 1. Pod节点亲和性 requiredDuringSchedulingIgnoredDuringExecution&am…...
如何通过rust实现自己的web登录图片验证码
在进行web系统开发时,为保障系统登录安全,登录页面中的验证码必不可少。在java中,我们可以利用相应的2D图像库快速生成图形验证码,而对于rust,我们没有合适的标准库进行图像验证码的生成。今天,我们通过使用…...
盛京开源社区加入 GitCode,书写东北开源生态新篇章
在数字化转型与开源技术蓬勃发展的浪潮下,开源社区已成为推动技术创新的核心力量。盛京开源社区(SJOSC)作为沈阳地区的开源交流平台,始终致力于连接开发者、企业及高校,构建区域技术生态圈。 现在,盛京开源…...
QKV 注意力机制在Transformer架构中的作用,和卷积在卷积神经网络中的地位,有哪些相似之处?
QKV 注意力机制在Transformer架构中的作用,和卷积在卷积神经网络中的地位,有哪些相似之处? QKV(Query-Key-Value)注意力机制在Transformer架构和卷积在卷积神经网络(CNN)中都起着核心作用&…...
高效与高并发API开发:使用FastAPI与Redis实现请求限制与速率控制
高效与高并发API开发:使用FastAPI与Redis实现请求限制与速率控制 📚 目录 API速率限制的基本概念Redis实现分布式速率限制防止DDoS攻击的常见策略基于IP或用户身份的访问频率控制 1. API速率限制的基本概念 API速率限制(Rate Limiting&…...
Centos7源码编译安装Sqlite最新版本
下载源码 https://www.sqlite.org/download.html 复制下载链接,然后用 wget 下载 wget https://www.sqlite.org/2025/sqlite-autoconf-3490100.tar.gz 解压缩编译安装 tar -zxf sqlite-autoconf-3490100.tar.gz cd sqlite-autoconf-3490100 ./configure --prefi…...
mybatis热点面试题第五弹
1. MyBatis与Hibernate的区别 答案: MyBatis: 不完全是一个ORM框架,需要手动编写SQL语句,灵活性高,适合对数据库操作有高性能要求的场景。缺点是无法做到数据库无关性,如果需要支持多种数据库,…...
KTransformers部署 使671B DeepSeek R1成「办公桌标配」
671B DeepSeek R1成「办公桌标配」 1. 什么是KTransformersDeepSeek 版本技术破局密钥:强稀疏化MoE模型需要全新的私有化架构设计趋境AI大模型推理软硬一体工作站——让大模型推理门槛降低10倍 2. 准备环境3 环境准备与资源下载4 安装过程1. linux环境搭建2. window…...
sql-labs less5-8
Less-5 双注入 基于单引号的字符型注入,涉及二次查询注入 Less-6 双注入 基于双引号的字符型注入,涉及二次查询注入 Less-7 字符型注入 基于单引号变形注入之导入文件 Less-8 布尔盲注 不返回任何错误信息,通过布尔逻辑判断 以下…...
一个大型应用的云原生一般有多少个服务?
DeepSeek R1 思考 1 秒 思考过程 在云原生架构中,大型应用的服务规模呈现动态分布特征。根据行业实践和架构模式分析,服务划分的核心考量维度包括: 一、业务领域驱动划分 核心业务服务群(通常15-30个) 用户中心&…...
Linux下安装VS Code
Centos 7 https://blog.csdn.net/weixin_63790642/article/details/132927888 安装存储库 sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc密钥 sudo sh -c echo -e "[code]\nnameVisual Studio Code\nbaseurlhttps://packages.microsoft.com/yum…...
【零基础到精通Java合集】第一集:Java开发环境搭建
以下是针对**“Java开发环境搭建”**的15分钟课程内容设计,包含知识点拆分、实操演示与互动练习: 课程标题:Java开发环境搭建(15分钟) 目标:完成JDK安装、IDE配置并运行第一个Java程序 一、课程内容与时间分配 0-2分钟 课程目标与前置准备 明确学习目标:JDK安装、环境…...
Rocky Linux 系统安装 typecho 个人博客系统(Docker 方式)
typecho 博客系统安装 官网: https://typecho.org/ 1. 安装 Docker curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repo && yum install docker-ce -y && docker -v && systemctl enable --now docker…...
C++-第二十一章:特殊类设计
目录 第一节:特殊类 1-1.不能被拷贝的类 1-2.只能在堆上构造的类 1-3.只能在栈上构造的类 1-4.只能构造一个对象的类 第二节:工厂模式 下期预告: 第一节:特殊类 1-1.不能被拷贝的类 不能被拷贝的类有线程类、std::unique_ptr、…...
pytorch 模型测试
在使用 PyTorch 进行模型测试时,一般包含加载测试数据、加载训练好的模型、进行推理以及评估模型性能等步骤。以下为你详细介绍每个步骤及对应的代码示例。 1. 导入必要的库 import torch import torch.nn as nn import torchvision import torchvision.transforms as trans…...
在kali linux中kafka的配置和使用
官方文档 一、安装依赖 删除原有的jdk sudo apt remove --purge openjdk-\* sudo apt clean安装 Java (JDK 11) sudo apt install openjdk-11-jdk -y # 验证安装 java -version二、下载并解压 Kafka 下载 Kafka wget https://dlcdn.apache.org/kafka/3.9.0/kafka_2.13-3.9.0.t…...
代码规范和简化标准
代码规范和简化标准是编写高质量、可维护、可扩展和可读代码的基本原则。遵循这些标准不仅能提高团队协作效率,还能减少出错的概率和后期维护的成本。以下是一些常见的代码规范和简化标准: 1. 命名规范 变量命名: 使用具有描述性的名称&…...
基于SpringBoot的校园二手交易平台(源码+论文+部署教程)
运行环境 校园二手交易平台运行环境如下: • 前端:Vue • 后端:Java • IDE工具:IntelliJ IDEA(可自行更换) • 技术栈:SpringBoot Vue MySQL 主要功能 校园二手交易平台主要包含前台和…...
【51单片机】快速入门
动手实践 > 理论空谈!从点亮LED开始,逐步扩展功能,2周可入门基础。 一、51单片机基础概念 什么是51单片机? 基于Intel 8051架构的8位微控制器,广泛用于嵌入式开发。 核心特性:4KB ROM、128B RAM、32个…...
YOLOv8+QT搭建目标检测项目
2024年7月YOLOv8QT初步搭建目标检测(避坑)_qt yolov8-CSDN博客YOLOv8QT初步搭建目标检测 2024年7月YOLOv8QT初步搭建目标检测(避坑)_qt yolov8-CSDN博客 yolov8的可视化界面(一、可视化界面设计)_yolo 可…...
STAR-CCM+物理场实战:用‘伴随求解器’优化无人机气动,附完整仿真流程文件
STAR-CCM物理场实战:用‘伴随求解器’优化无人机气动,附完整仿真流程文件 无人机气动外形优化一直是工程仿真领域的难点与热点。传统方法依赖人工试错与经验调整,效率低下且难以找到全局最优解。本文将深入解析如何利用STAR-CCM的伴随求解器技…...
别再死记硬背了!用一张图帮你彻底搞懂FC协议栈(从FC-0到FC-4)
用视觉化思维拆解FC协议栈:从物理层到应用层的全景指南 当你第一次接触光纤通道(FC)协议时,那些从FC-0到FC-4的层级、各种端口类型和封装结构是否让你感到头晕目眩?别担心,这篇文章将用全新的视觉化方法&am…...
STM32F407 HAL库驱动42步进电机:从CubeMX配置到代码调试的完整避坑指南
STM32F407 HAL库驱动42步进电机:从CubeMX配置到代码调试的完整避坑指南 在嵌入式开发领域,步进电机控制一直是工业自动化、3D打印和机器人控制等应用中的核心技术。对于刚接触STM32系列微控制器的开发者来说,使用HAL库驱动42步进电机可能会遇…...
QEMU理解与分析系列(16):QEMU启动方式分析
QEMU启动方式分析启动流程RISC-V specific│┌──────────────────┼──────────────────┐▼ ▼ ▼┌──────────────┐ ┌──────────────┐ ┌───────────…...
告别ArcGIS!用Python+MRT批量处理MODIS 16A2蒸散发数据,从HDF到月均ET全流程
告别ArcGIS!用PythonMRT批量处理MODIS 16A2蒸散发数据,从HDF到月均ET全流程 在生态水文研究中,MODIS 16A2蒸散发数据(ET)是评估区域水资源平衡的关键指标。然而,传统ArcGIS手动操作不仅效率低下,…...
CRM功能解析:覆盖客户、销售、数据、库存、工单全场景
在数字化转型浪潮中,企业对业务管理系统的需求已从单一CRM延伸至客户分层、销售自动化、数据分析、进销存、工单协同的全链路覆盖。不同系统在核心能力的实现逻辑与落地价值上差异显著,本文选取超兔一体云、Attio、Creatio、伙伴云CRM、OKKICRMÿ…...
无需电荷泵的高边开关:IRLML6401TRPBF在便携设备电源管理中的简化设计
IRLML6401TRPBF:SOT-23封装P沟道功率MOSFET的开关应用解析在便携式电子设备、电源管理以及电池保护电路中,PCB面积的限制往往与功率处理能力形成矛盾。设计师需要在有限的板级空间内实现高效的电源路径切换和负载管理。IRLML6401TRPBF是英飞凌࿰…...
半波整流电路:从原理到实践,掌握AC-DC转换基础
1. 项目概述:从交流到直流的第一步在电子电路的世界里,我们常常需要将交流电(AC)转换为直流电(DC),这个过程我们称之为“整流”。而半波整流电路,可以说是所有整流电路中最基础、最经…...
别再让用户错过消息!UniApp应用通知权限引导的最佳实践与UniPush 2.0优化
UniApp应用通知权限引导的艺术与UniPush 2.0实战策略 当用户的手指在屏幕上轻轻滑动,决定是否授予你的应用通知权限时,这场无声的对话将直接影响后续的用户留存与活跃度。数据显示,超过60%的用户在首次拒绝通知权限后,永远不会主动…...
Ubuntu 20.04桌面管理器搞乱了?别慌,手把手教你找回原版GNOME桌面(附LightDM/GDM3切换命令)
Ubuntu 20.04桌面环境异常修复指南:从混乱到秩序 系统启动后突然发现熟悉的GNOME桌面消失了,取而代之的是一个陌生的登录界面和错乱的窗口布局——这可能是许多Ubuntu新手在尝试自定义系统时遇到的噩梦。本文将带你深入理解Linux显示管理器的运作机制&am…...
