K8S学习之基础六:k8s中pod亲和性

server/2025/3/6 17:38:13/

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状态


http://www.ppmy.cn/server/172927.html

相关文章

人工智能神经网络基本原理

MP 神经元数学模型 MP 模型是神经网络领域的早期模型,它模仿了神经元的基本结构和工作原理。 人工神经元是一个多输入、单输出的信息处理单元,是对生物神经元的建模。建模方式可以有很多种,不同的建模方式就意味着不同的人工神经元结构。 比…

科技查新有不通过的情况吗?为什么?

1. 科技查新有不通过的情况吗?为什么? 有。科技查新“不通过”(即查新报告显示技术缺乏新颖性或存在侵权风险)的情况并不罕见,主要原因包括: (1)技术缺乏创新性 重复开发&#xff…

中兴移动互联终端三剑齐发 AI、5G-A、WiFi7构建高效智能网络

【科技快报网讯】近日,中兴通讯全队列多形态AI终端亮相巴塞罗那2025年世界移动通信大会。在移动互联领域,中兴通讯展出了系列支持最新AI、5G-A、WiFi7技术的终端,并基于AI驱动的全新GIS理念,发布中兴 G5 Ultra、中兴 G5 Max Wi-Fi…

行为模式---命令模式

概念 命令模式是一种行为设计模式,它的核心思想就是将请求封装为一个对象,此对象包含与请求相关的所有信息。可以用不同的请求对客户进行参数化。命令模式通过将请求的发送者和接收者解耦,支持请求的排队、记录、撤销等操作。 使用场景 1、…

ERROR:This version of pnpm requires at least Node.js vXXX 的解决方案

This version of pnpm requires at least Node.js vXXX 的解决方案 Centos7环境下,pnpm与Node.js版本不兼容导致报错 This version of pnpm requires at least Node.js vXXX 的解决方案 错误原因其实就是 pnpm 的版本不兼容 Node.js 的版本,明白了可以…

React面试葵花宝典之三

71、React组件返回值 、在 React 中&#xff0c;组件的返回值取决于组件的类型&#xff0c;通常有以下几种情况&#xff1a; 1. 函数组件的返回值 函数组件返回的是 JSX 或 null&#xff1a; const MyComponent () > {return <div>Hello, React!</div>; };…

docker 安装达梦数据库(离线)

docker安装达梦数据库&#xff0c;官网上已经下载不了docker版本的了&#xff0c;下面可通过百度网盘下载 通过网盘分享的文件&#xff1a;dm8_20240715_x86_rh6_rq_single.tar.zip 链接: https://pan.baidu.com/s/1_ejcs_bRLZpICf69mPdK2w?pwdszj9 提取码: szj9 上传到服务…

Golang的代码注释规范指南

Golang的代码注释规范指南 一、注释的重要性 为什么需要注释 在编写代码的过程中&#xff0c;我们经常会遇到需要解释代码意图、功能、特殊处理方式等情况。这时&#xff0c;注释就发挥了非常重要的作用&#xff0c;它能够帮助代码的阅读和理解&#xff0c;提高代码的可维护性和…