当前位置: 首页 > 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: nginx
  labels:
    app: nginx
    tier: monitor
spec:
    containers:
    - name: nginx
      image: 172.16.80.140/nginx/nginx:1.26
      imagePullPolicy: 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: busybox
  labels:
    app: backend
    tier: db
spec:
    containers:
    - name: busybox
      image: 172.16.80.140/busybox/busybox:latest
      imagePullPolicy: IfNotPresent
      command: ["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: busybox1
  labels:
    app: backend1
    tier: db
spec:
    containers:
    - name: busybox1
      image: 172.16.80.140/busybox/busybox:latest
      imagePullPolicy: IfNotPresent
      command: ["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: busybox2
  labels:
    app: backend
    tier: db
spec:
    containers:
    - name: busybox2
      image: 172.16.80.140/busybox/busybox:latest
      imagePullPolicy: IfNotPresent
      command: ["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状态

相关文章:

  • qt实践教学(编写一个代码生成工具)持续更新至完成———
  • 力扣:1.两数之和(O(n)复杂度)
  • [Computer Vision]实验七:图像检索
  • 摄像头应用编程(四):ARM Linux LCD实时预览UVC摄像头画面
  • 摄像头应用编程(三):多平面视频采集
  • 009---基于Verilog HDL的单比特信号边沿检测
  • 【前端】在WebStorm中安装Node.js与nvm与npm的详细过程
  • 第15届 蓝桥杯 C++编程青少组中级省赛 202408 真题答案及解析
  • 从新加坡《Companion Guide on Securing AI Systems 》看可信AI全生命周期防护框架构建
  • SOUI基于Zint生成EAN码
  • QT-信号与槽
  • deepseek、腾讯元宝deepseek R1、百度deepseekR1关系
  • 【自学笔记】Spring基础知识点总览-持续更新
  • Java的异常体系中的Error
  • 如何在网页上显示3D CAD PMI
  • Grok 3能否打破大模型的魔咒?
  • 【四.RAG技术与应用】【1.RAG技术揭秘:大模型与检索增强生成】
  • Error Density-dependent Empirical Risk Minimization
  • 基于IMM算法的目标跟踪,四模型IMM|三维环境|4个模型分别是:CV、左转CT、右转CT、CA(基于EKF,订阅专栏后可获得完整源代码)
  • 计算机视觉之dlib人脸关键点绘制及微笑测试
  • 北京亦庄启动青年人才创新创业生态示范区
  • 赵乐际主持十四届全国人大常委会第十五次会议闭幕会并作讲话
  • 4月人民币对美元即期汇率微跌,今年以来升值0.48%
  • 69岁朱自强被查,曾任南京地铁总经理
  • 豆神教育:2024年净利润1.37亿元,同比增长334%
  • 铁路五一假期运输今日启动,预计发送旅客1.44亿人次