|NO.Z.00211|——————————|^^ 标准 ^^|——|KuberNetes&高级调度.V14|——|Pod亲和力反亲和力.v02|pod亲和力_跨namespace|

一、pod的亲和力:跨namespace:
### --- pod亲和力实验说明

~~~     与指定pod部署在一块,是可以块namespace的:
~~~     把demo-nginx和kube-systemnamespace下的符合label
~~~     为k8s-app=calico-kube-controllers的pod部署在同一个拓扑域上
二、编辑pod亲和力跨namespace.yaml文件
### --- 查看calico-kube-controllers所在那个节点且具有的标签

[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>
~~~     # 查看所具有的标签
~~~     使用该标签进行约束:k8s-app=calico-kube-controllers

[root@k8s-master01 ~]# kubectl get po -n kube-system --show-labels
NAME                                       READY   STATUS    RESTARTS   AGE    LABELS
calico-kube-controllers-5f6d4b864b-rttg5   1/1     Running   1          2d2h   k8s-app=calico-kube-controllers,pod-template-hash=5f6d4b864b
### --- 编辑yaml文件
~~~     把符合这个标签的- key: k8s-app  values:
~~~     - calico-kube-controllers的pod部署在同一个拓扑域上

[root@k8s-master01 ~]# vim pod-Affinity-demo-nginx.yaml 
    spec:
      affinity:
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: k8s-app
                operator: In
                values:
                - calico-kube-controllers
            namespaces:
              - kube-system
            topologyKey: kubernetes.io/hostname 
三、重新触发pod
### --- 重新触发容器

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

[root@k8s-master01 ~]# kubectl get po -owide
NAME                          READY   STATUS        RESTARTS   AGE   IP              NODE           NOMINATED NODE   READINESS GATES
busybox                       1/1     Running       0          12m   172.25.92.90    k8s-master02   <none>           <none>
demo-nginx-98764c475-4gn7l    2/2     Running       0          66s   172.18.195.41   k8s-master03   <none>           <none>
demo-nginx-98764c475-frv7l    2/2     Running       0          67s   172.18.195.40   k8s-master03   <none>           <none> 
### --- 可以看到它和calico-kube-controllers是在不同的namespace下,
~~~     但是都是部署在了k8s-master03上 

[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>
四、namespace解释:
### --- 如果写了namespace是的字段,但是留空,它是匹配所有namespace下的指定label的Pod
~~~     若是写了namespace,但是namespace的值为空,什么也不写的情况下
namespace:
   空行               
### --- 如果写了namespace并且指定了值,就是匹配指定namespace下的指定label的pod
~~~     若是写了- kube-system,就是匹配,key:值下的values:下的这个容器
namespace:
 - kube-system       
### --- 若果没有写namespace,那么就是匹配当前namespace

 
 
 
 
 
 
 
 
 

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  阅读(29)  评论(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

导航

统计

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