<p>I have 4 nodes (<code>kubelets</code>) configured with a label <code>role=nginx</code></p>

<pre><code>master ~ # kubectl get node
NAME          LABELS                                          STATUS
10.1.141.34   kubernetes.io/hostname=10.1.141.34,role=nginx   Ready
10.1.141.40   kubernetes.io/hostname=10.1.141.40,role=nginx   Ready
10.1.141.42   kubernetes.io/hostname=10.1.141.42,role=nginx   Ready
10.1.141.43   kubernetes.io/hostname=10.1.141.43,role=nginx   Ready
</code></pre>

<p>I modified the replication <code>controller</code> and added these lines</p>

<pre><code>spec:
  replicas: 4
  selector:
    role: nginx
</code></pre>

<p>But when I fire it up I get 2 pods on one host. What I want is 1 pod on each host. What am I missing?</p>

<p>Prior to DaemonSet being available, you can also specify that you pod uses a host port and set the number of replicas in your replication controller to something greater than your number of nodes. The host port constraint will allow only one pod per host. </p>
