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

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

http://www.lryc.cn/news/546316.html

相关文章:

  • 如何通过rust实现自己的web登录图片验证码
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • QKV 注意力机制在Transformer架构中的作用,和卷积在卷积神经网络中的地位,有哪些相似之处?
  • 高效与高并发API开发:使用FastAPI与Redis实现请求限制与速率控制
  • Centos7源码编译安装Sqlite最新版本
  • mybatis热点面试题第五弹
  • KTransformers部署 使671B DeepSeek R1成「办公桌标配」
  • sql-labs less5-8
  • 一个大型应用的云原生一般有多少个服务?
  • Linux下安装VS Code
  • 【零基础到精通Java合集】第一集:Java开发环境搭建
  • Rocky Linux 系统安装 typecho 个人博客系统(Docker 方式)
  • C++-第二十一章:特殊类设计
  • pytorch 模型测试
  • 在kali linux中kafka的配置和使用
  • 代码规范和简化标准
  • 基于SpringBoot的校园二手交易平台(源码+论文+部署教程)
  • 【51单片机】快速入门
  • YOLOv8+QT搭建目标检测项目
  • 刷题记录10
  • 数学软件Matlab下载|支持Win+Mac网盘资源分享
  • 5G学习笔记之BWP
  • Spark 介绍
  • mac Homebrew安装、更新失败
  • 【实战 ES】实战 Elasticsearch:快速上手与深度实践-2.2.3案例:电商订单日志每秒10万条写入优化
  • http的post请求不走http的整个缓存策略吗?
  • c++ 预处理器和iostream 文件
  • 【前端】前端设计中的响应式设计详解
  • 探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(二)
  • 打开 Windows Docker Desktop 出现 Docker Engine Stopped 问题