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是优先选择,而不是强制选择。

0
1
qq_慕函数1536532
明白了,谢谢老师
2023-11-03
共1条回复

Kubernetes系统精讲 Go语言实战K8S集群可视化

核心知识+高阶应用+原理剖析+二次开发 全方位打通K8S生产实践

399 学习 · 265 问题

查看课程