Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 具有容差的Pod被调度到没有污染的节点_Kubernetes - Fatal编程技术网

Kubernetes 具有容差的Pod被调度到没有污染的节点

Kubernetes 具有容差的Pod被调度到没有污染的节点,kubernetes,Kubernetes,我的pod具有以下设置: Node-Selectors: <none> Tolerations: node.kubernetes.io/memory-pressure:NoSchedule node.kubernetes.io/not-ready:NoExecute for 300s node.kubernetes.io/unreachable:NoExecute for 60s

我的pod具有以下设置:

Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/memory-pressure:NoSchedule
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 60s
                 role_va
节点选择器:
容差:node.kubernetes.io/内存压力:NoSchedule
node.kubernetes.io/not ready:NoExecute持续300秒
node.kubernetes.io/不可访问:不执行60秒
角色
pod被安排在此节点中:

Labels:             balancer=true
                    beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    cpu_avx2=true
                    cpu_avx512f=true
                    kubernetes.io/hostname=p20b-sr3-r5-k8s-node4
                    master=true
                    worker=true
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             <none>
Labels:balancer=true
beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
cpu_avx2=真
cpu_avx512f=真
kubernetes.io/hostname=p20b-sr3-r5-k8s-node4
主=真
worker=true
注释:node.alpha.kubernetes.io/ttl=0
volumes.kubernetes.io/controller managed attach detach=true
污点:
请帮我理解为什么。 如果我没有弄错的话,带有容忍“role_va”的pod必须只调度到具有此污染的节点。
在我的例子中,节点没有这个污点,但是pod被安排到这个节点中。为什么?

您的问题答案包含在Kubernetes文档中的污染和容忍定义中:

Kubernetes处理多个污点和容忍度的方式就像一个过滤器:从节点的所有污点开始,然后忽略pod具有匹配容忍度的污点;其余未被忽略的污染对吊舱有指示的影响


这意味着,如果节点没有污点,它将接受每一个豆荚,无论其中定义了什么容忍。

正如马尔戈扎塔所说,污点和容忍只对节点接受某种豆荚有用。例如,具有“蓝色”污染的节点只能接受具有“蓝色”容忍度的吊舱。但是,这并不意味着容忍度为“蓝色”的pod只会在污染度为“蓝色”的节点中结束。Kube调度程序可以拾取任何其他没有污染的节点(因此没有pod类型的首选项)

下面是实现您的需求的两种可能的方法

  • 应用带有污点的节点和带有该容差的pod。并且还声明pod的节点关联性,这是pod在特定节点上获取调度的首选项。这两种配置结合在一起可以确保pod在特定节点上得到调度。节点将只有具有特定容忍度的豆荚

  • 如果有三个节点,则在其中一个节点上应用“蓝色”污点,在其余节点上应用“红色”污点。这将迫使具有“蓝色”容忍度的pod在具有“蓝色”污染的节点上只有一个选择。因为其他节点有“红色”污染,pod没有“红色”容忍


  • 请帮帮我。