Pod 拓扑分布约束

本文介绍了在Kubernetes环境中如何设置Pod的拓扑分布约束,包括在api-server和scheduler中启用EvenPodsSpread,给节点添加label,以及创建带有不同`whenUnsatisfiable`策略的Deployment。通过实例展示了`DoNotSchedule`和`ScheduleAnyway`两种情况下的Pod分布效果,揭示了当节点Pod数量达到上限时,新Pod的调度行为。
摘要由CSDN通过智能技术生成

Pod 拓扑分布约束

1.环境
  • CentOS Linux release 8.3.2011

  • kubernetes 1.18.16

  • 一个master节点,两个node节点

2 使用Pod 拓扑分布约束
2.1 在api-server和scheduler中开启EvenPodsSpread

编辑/etc/kubernetes/manifests/kube-apiserver.yaml

#在文件中添加
- --feature-gates=EvenPodsSpread=true

编辑/etc/kubernetes/manifests/kube-scheduler.yaml

#在文件中添加
- --feature-gates=EvenPodsSpread=true
2.2给节点添加label
kuebctl label nodes node01 node=node1
kubectl label nodes node02 node=node2
kubectl label nodes master node=master
2.3 创建带拓扑约束的deployment
2.3.1 whenUnsatisfiable: DoNotSchedule 情况
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test
  labels:
    foo: bar
spec:
  replicas: 8
  selector:
    matchLabels:
      foo: bar
  template:
    metadata:
      labels:
        foo: bar
    spec:
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: node   #以node为key
        whenUnsatisfiable: DoNotSchedule
        labelSelector:
          matchLabels:
            foo: bar
      containers:
      - name: myapp-container
        image: busybox:1.28
        command: ['sh', '-c', 'echo The app is running! && sleep 3600']   

分布结果

[root@master ~]# kubectl get pods -A -owide |grep test
default       test-69fcfbdb9d-5vtc6            1/1     Running   0          5m50s   10.244.0.4        master   <none>           <none>
default       test-69fcfbdb9d-8xr72            1/1     Running   0          5s      10.244.0.6        master   <none>           <none>
default       test-69fcfbdb9d-gkmpw            1/1     Running   0          5s      10.244.1.5        node01   <none>           <none>
default       test-69fcfbdb9d-hkkpx            1/1     Running   0          5s      10.244.1.6        node01   <none>           <none>
default       test-69fcfbdb9d-qgfpc            1/1     Running   0          5s      10.244.2.10       node02   <none>           <none>
default       test-69fcfbdb9d-rpvhw            1/1     Running   0          5m50s   10.244.0.5        master   <none
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王伯爵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值