Kubernetes 具有容差的Pod被调度到没有污染的节点
我的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
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类型的首选项) 下面是实现您的需求的两种可能的方法
请帮帮我。