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
相关推荐
yuezhilangniao12 小时前
**国内阿里云环境**ubuntu22安装k8s1.32
阿里云·kubernetes·云计算
遇见火星20 小时前
Docker Compose 完全入门:一键启动所有容器
运维·docker·容器·docker compose
蘋天纬地1 天前
k8s的控制平面是什么,有什么作用
容器·kubernetes
无级程序员1 天前
clklog地域分析中的地名中英文对照问题解决
kubernetes
加加and减减1 天前
Docker真实安装mysql8教程并优化配置
运维·mysql·docker·容器
qiuziqiqi1 天前
ocker-compose.yml 和Dockerfile 区别
运维·docker·容器
杰克逊的日记1 天前
如何在不影响业务的情况下对K8S集群升级
云原生·容器·kubernetes
逻极1 天前
Kubernetes 从入门到精通:云原生容器编排
kubernetes·k8s·服务发现·容器编排
nvd111 天前
Terraform 避坑:模块下线时,如何不破坏已有的 Instance Template?
云原生·terraform
极客先躯1 天前
高级java每日一道面试题-2026年02月03日-实战篇[Docker]-如何备份和恢复 Docker Volume?
运维·docker·容器·自动化·备份·持久化·恢复