将 Pod 指派给节点

你可以约束一个 Pod 以便 限制 其只能在特定的节点上运行, 或优先在特定的节点上运行。有几种方法可以实现这点,推荐的方法都是用标签选择算符来进行选择。

你可以使用下列方法中的任何一种来选择 Kubernetes 对特定 Pod 的调度:

  • 与节点标签匹配的 nodeSelector

  • 亲和性与反亲和性

  • nodeName 字段

  • Pod 拓扑分布约束

NodeSelector对节点的选择是强制性的,假如配置了NodeSelector为ssd=true,那么如果集群中没有匹配的节点,这个Pod将一直处于Pending状态。

在生产环境中可能会有这样的需求:

  • 某些Pod优先选择有ssd=true标签的节点,如果没有再考虑部署到其他节点

  • 某些Pod需要部署在ssd=true和type=physical的节点上,但是优先部署在ssd=true的节点上。

  • 同一类应用的Pod尽量不要部署或不允许部署在同一个节点或者符合某个标签的一类节点上

  • 相互依赖的两个Pod尽量或必须部署在同一个节点上

最后更新于