How to run two pods in exclusive nodes?

4k Views Asked by At

I'd like to run two pods in exclusive nodes. For instance, I have 4 nodes (node-1, node-2, node-3, node-4) and 2 pods (pod-1, pod-2). I want only one pod to run in each node and each pod to run in two nodes, e.g. pod-1 in node-1 and node-2, pod-2 in node-3 and node-4. Is there a way to configure this way?

4

There are 4 best solutions below

0
On BEST ANSWER

You can force exclusivity by creating pod definitions that are unable to schedule on the same machine. The easiest way to do that is to assign each pod the same host port. Once you have the same host port set for both of your pod definitions, if you create two replication controllers with two replicas each, then the scheduler will run 2 copies of 2 pods spread across 4 machines.

5
On

You can also use a headless service - it won't guarantee execlusivity, but the algorithm will prefer it during scheduling.

0
On

Use a DaemonSet with Node Affinity or even Anti-Affinity.

0
On

What I exactly wanted to do is compassable via node selection.