|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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了