node 的亲和度 好像结果好像不是想象中的情况
来源:1-4 Docker安装与配置

qq_慕函数1536532
2023-11-03
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: test
labels:
name: app
spec:
containers:
- name: busybox
image: busybox
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 20
preference:
matchExpressions:
- key: app
operator: In
values:
- michenghua
- weight: 80
preference:
matchExpressions:
- key: app
operator: In
values:
- mch
[root@master pod_schedule]# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
master Ready master 250d v1.19.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
node1 Ready <none> 250d v1.19.3 app=michenghua,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux
node2 Ready <none> 249d v1.19.3 app=mch,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,disktype=ssd,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux
node1 的标签 是 app=michenghua , 设置的权重 是 20
node2 的标签是 app=mch , 设置的权重 是 80
为什么我的pod 会 分布在 node1 ,不是应该分布在权重 高 的 80 这个节点 node2 吗?
[root@master pod_schedule]# kubectl get pod -n test -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
busybox 0/1 CrashLoopBackOff 5 6m32s 10.244.1.244 node1 <none> <none>
写回答
1回答
-
暮闲
2023-11-03
同学你好呀,node软亲和调度,不是强制调度哦,是优先策略。以你上述的示例作为说明,node01权重设置的是80,但是node02上的资源更充足,虽然node02权重更低,但是也会调度到node02,这也进一步论证preferredDuringSchedulingIgnoredDuringExecution是优先选择,而不是强制选择。
012023-11-03
相似问题