如何在独占节点中运行两个pods?
How to run two pods in exclusive nodes?
我想 运行 两个 pods 独占节点。例如,我有 4 个节点(node-1、node-2、node-3、node-4)和 2 pods(pod-1、pod-2)。我只希望每个节点中有一个 pod 到 运行,每个 pod 到两个节点中的 运行,例如pod-1 在 node-1 和 node-2 中,pod-2 在 node-3 和 node-4 中。有没有办法这样配置?
您可以通过创建无法在同一台机器上安排的 pod 定义来强制排他性。最简单的方法是为每个 pod 分配相同的主机端口。一旦为两个 pod 定义设置了相同的主机端口,如果您创建两个复制控制器,每个复制控制器有两个副本,那么调度程序将 运行 2 个副本 pods 分布在 4 台机器上。
您也可以使用无头服务 - 它不能保证独占性,但算法会在调度期间优先使用它。
我真正想做的是通过 node selection 实现。
使用 DaemonSet with Node Affinity or even Anti-Affinity。
我想 运行 两个 pods 独占节点。例如,我有 4 个节点(node-1、node-2、node-3、node-4)和 2 pods(pod-1、pod-2)。我只希望每个节点中有一个 pod 到 运行,每个 pod 到两个节点中的 运行,例如pod-1 在 node-1 和 node-2 中,pod-2 在 node-3 和 node-4 中。有没有办法这样配置?
您可以通过创建无法在同一台机器上安排的 pod 定义来强制排他性。最简单的方法是为每个 pod 分配相同的主机端口。一旦为两个 pod 定义设置了相同的主机端口,如果您创建两个复制控制器,每个复制控制器有两个副本,那么调度程序将 运行 2 个副本 pods 分布在 4 台机器上。
您也可以使用无头服务 - 它不能保证独占性,但算法会在调度期间优先使用它。
我真正想做的是通过 node selection 实现。
使用 DaemonSet with Node Affinity or even Anti-Affinity。