k8s的Pod反亲和性

针对对象为Pod,目的是实现,新建Pod和目标Pod不要调度到一起,不在同一个Node上

示例:

bash 复制代码
root@k8s-master:/home/vagrant# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: testpod01
  labels:
    app: myapp01
    env: test1
spec:
  containers:
  - name: testpod01
    image: nginx:1.23.2
    imagePullPolicy: IfNotPresent

root@k8s-master:/home/vagrant# cat pod2.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: testpod02
  labels:
    app: myapp02
    env: test2
spec:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:  ##必须满足下面匹配规则
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In  
            values:
            - myapp01  ## app=myapp01, 上面的Pod是符合要求的
        topologyKey: "kubernetes.io/hostname"
  containers:
  - name: testpod02
    image: redis:6.2


root@k8s-master:/home/vagrant# kubectl create -f pod.yaml 
pod/testpod01 created
root@k8s-master:/home/vagrant# kubectl create -f pod2.yaml 
pod/testpod02 created

root@k8s-master:/home/vagrant# kubectl get pods -o wide --show-labels
NAME            READY   STATUS    RESTARTS   AGE   IP              NODE          NOMINATED NODE   READINESS GATES   LABELS
node-affinity   1/1     Running   0          30m   172.16.126.2    k8s-worker2   <none>           <none>            <none>
testpod01       1/1     Running   0          11s   172.16.194.67   k8s-worker1   <none>           <none>            app=myapp01,env=test1
testpod02       1/1     Running   0          9s    172.16.126.3    k8s-worker2   <none>           <none>            app=myapp02,env=test2
相关推荐
香气袭人知骤暖2 小时前
人大金仓(KingbaseES)Docker 容器自动备份方案
运维·docker·容器
Devin~Y2 小时前
从内容社区到AIGC客服:Spring Boot、Redis、Kafka、K8s、RAG的三轮大厂Java面试对话(附标准答案)
java·spring boot·redis·spring cloud·kafka·kubernetes·micrometer
大熊程序猿2 小时前
MarkItDown Docker安装
运维·docker·容器
IT策士3 小时前
第25篇 k8s之Deployment 基础:声明式管理与副本控制
云原生·容器·kubernetes
IT策士3 小时前
第 26 篇 k8s之Deployment 进阶:滚动更新、回滚与暂停
云原生·容器·kubernetes
老毛肚3 小时前
Docker Desktop 介绍
运维·docker·容器
张忠琳4 小时前
【kubernetes v1.21】(kubelet 2)容器运行时与CRI
云原生·架构·kubernetes·kubelet
张忠琳4 小时前
【kubernetes v1.21】(kubelet 3)PLEG、健康检查、Eviction 与状态管理
云原生·架构·kubernetes·kubelet
秋漓4 小时前
Kubernetes了解与应用
云原生·容器·kubernetes
IT策士4 小时前
第28篇 k8s之Service:为 Pod 提供稳定的访问入口
云原生·容器·kubernetes