<p><strong>Use case</strong></p>

<p>Let's say I've got 3 different node pools: <code>default</code>, <code>kafka</code> and <code>team-a</code>. I want to make sure that only kafka relevant deployments and stuff like daemonsets or kubernetes system services run on this node pool. I do so by simply adding a node selector to my kafka deployments, so that it can only be scheduled on the kafka nodepool:</p>

<pre><code>nodeSelector:
  cloud.google.com/gke-nodepool: kafka
</code></pre>

<p><strong>The problem</strong></p>

<p>When I have further deployments or statefulsets which <strong>do not</strong> have any node selector specified they might get scheduled on that kafka nodepool. Instead I want all other deployments without nodeselector to be scheduled inside of my default nodepool.</p>

<p><strong>Worded as generic question</strong></p>

<p>How can I make sure that all deployments &amp; statefulsets without a node selector will be scheduled inside of a specific nodepool?</p>

<p>Use <code>taint</code> for statefulset or <code>pod</code>. Follow: <a href="https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" rel="noreferrer">https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/</a></p>
