多个污点的过滤

可以给一个节点添加多个污点,也可以给一个 Pod 添加多个容忍度设置

Kubernetes 处理多个污点和容忍度的过程就像一个过滤器从一个节点的所有污点开始遍历, 过滤掉那些 Pod 中存在与之相匹配的容忍度的污点。余下未被过滤的污点的 effect 值决定了 Pod 是否会被分配到该节点。

需要注意以下情况:

  • 如果未被忽略的污点中存在至少一个 effect 值为 NoSchedule 的污点, 则 Kubernetes 不会将 Pod 调度到该节点。

  • 如果未被忽略的污点中不存在 effect 值为 NoSchedule 的污点, 但是存在至少一个 effect 值为 PreferNoSchedule 的污点, 则 Kubernetes 会 尝试 不将 Pod 调度到该节点。

  • 如果未被忽略的污点中存在至少一个 effect 值为 NoExecute 的污点, 则:

    • 如果 Pod 还未在节点上运行,Kubernetes 不会将 Pod 调度到该节点;

    • 如果 Pod 已经在节点上运行,Kubernetes 还会将 Pod 从该节点驱逐。

最后更新于