|NO.Z.00212|——————————|CloudNative|——|KuberNetes&高级调度.V15|——|Pod亲和力反亲和力.v03|pod反亲和力|

一、Pod的反亲和力:
### --- 编辑yaml文件:编写pod的反亲和力的参数
~~~     # 编辑yaml文件
~~~     就是尽量不和namespace下的kube-system,key:

k8s-app的值为values:calico-kube-controllers的pod尽量不要部署在一块
[root@k8s-master01 ~]# vim pod-Affinity-demo-nginx.yaml 
      affinity:
        podAntiAffinity:    // 反亲和力就是这个名字不一样,中间多了个Anti字段
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: k8s-app
                operator: In
                values:
                - calico-kube-controllers
            namespaces:
              - kube-system
            topologyKey: kubernetes.io/hostname 
二、创建pod反亲和力资源
### --- 重新触发demo-nginx

[root@k8s-master01 ~]# kubectl replace -f pod-Affinity-demo-nginx.yaml 
deployment.apps/demo-nginx replaced
### --- 验证部署结果
~~~     可以看到部署在了 k8s-master01节点上面

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS    RESTARTS   AGE   IP               NODE           NOMINATED NODE   READINESS GATES
busybox                       1/1     Running   0          25m   172.25.92.90     k8s-master02   <none>           <none>
demo-nginx-85dc94b86c-jwtz2   2/2     Running   0          59s   172.25.244.197   k8s-master01   <none>           <none>
demo-nginx-85dc94b86c-wp5bz   2/2     Running   0          60s   172.25.244.195   k8s-master01   <none>           <none>
### --- 而calico-kube-controllers部署在k8s-master03节点,
~~~     和demo-nginx是不在同一节点的。

[root@k8s-master01 ~]# kubectl get po -n kube-system -owide
NAME                                       READY   STATUS    RESTARTS   AGE    IP              NODE           NOMINATED NODE   READINESS GATES
calico-kube-controllers-5f6d4b864b-rttg5   1/1     Running   1          2d2h   192.168.1.13    k8s-master03   <none>           <none>
三、亲和力参数说明
### --- 根据缩写参数查看所匹配的pod

            matchExpressions:
              - key: k8s-app
                operator: In
                values:
                - calico-kube-controllers
### --- 查看配置参数所对应的pod
~~~     匹配到的pod,若是写的是亲和力,就会把所创建的Pod的和这个pod部署在同一个节点下。
~~~     若是写的是反亲和力,就不会把所创建的pod和这个pod不部署在同一个节点下。

[root@k8s-master01 ~]# kubectl get po -n kube-system -l k8s-app=calico-kube-controllers
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-5f6d4b864b-rttg5   1/1     Running   1          2d2h

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(18)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示