k8s中weight权重详解

实验环境准备:

[root@master pod-dispatch]# cat pod-nodeaffinity-preferred.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: pod-nodeaffinity-prefered
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
  affinity:
    nodeAffinity:                                        #设置节点亲和性
      preferredDuringSchedulingIgnoredDuringExecution:    
      - weight: 10                                #把优先级10赋值给标签值xxx
        preference:
          matchExpressions:
          - key: nodeenv
            operator: In
            values: ["xxx"]
      - weight: 1                                #把优先级1赋值给标签值yyy
        preference:
          matchExpressions:
          - key: nodeenv
            operator: In
            values: ["yyy"]

[root@master ~]# kubectl get node --show-labels
NAME     STATUS   ROLES    AGE   VERSION   LABELS
master   Ready    master   43h   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=master,kubernetes.io/os=linux,max=ccc,node-role.kubernetes.io/master=,nodeenv=yyy                #设置主机nodeenv的值为yyy
node1    Ready    <none>   43h   v1.17.4   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,max=cc,nodeenv=xxx     #设置主机nodeemv的值为xxx

详解:

因为我搭建的k8s集群是一个主一个node节点,在k8s中默认主机节点是没有办法创建pod的,因为他存在污点,你如果想让主节点创建pod,你需要去除节点或者设置容器,这里不做过多讲解,

去除污点可以参考:k8s两节点一个主节点一个node节点部署硬限制失败_m0_52526697的博客-优快云博客

我们现在:把nodeenv中xxx的权重赋值为10,把nodeenv中yyy的权重赋值为1,在官方资料中weight权重值为1到100,值越大越优先,所以我们得知他应该会在nodeenv值为xxx的节点去创建pod。

我们拓展一下是不是我们把nodeenv中yyy的权重设置为20,那么他是不是就在nodeenv值为yyy的节点去创建pod,答案是一定的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值