<p>We are having problem with several deployments in our cluster that do not seem to be working. But I am a bit apprehensive in touching these, since they are part of the kube-system namespace. I am also unsure as what the correct approach to getting them into an OK state is. </p>

<p>I currently have two daemonsets that have warnings with the message </p>

<p><strong>DaemonSet has no nodes selected</strong> </p>

<p>See images below. Does anyone have any idea what the correct approach is? </p>

<p><a href="https://i.stack.imgur.com/paqrW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/paqrW.png" alt="enter image description here"></a>
<a href="https://i.stack.imgur.com/QfR3S.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QfR3S.png" alt="enter image description here"></a></p>

<p>A DaemonSet is creating a pod in each node of your Kubernetes cluster.</p>
<p>If the Kubernetes scheduler cannot schedule any pod, there are several possibilities:</p>
<ul>
<li>Pod spec has a too high memory requests resource for the memory node capacity, look at the value of <code>spec.containers[].resources.requests.memory</code></li>
<li>The nodes may have a taint, so DaemonSet declaration must have a toleration (<a href="https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/" rel="nofollow noreferrer">kubernetes documentation about taint and toleration</a>)</li>
<li>The pod spec may have a <code>nodeSelector</code> field (<a href="https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector" rel="nofollow noreferrer">kubernetes documentation about node selector</a>)</li>
<li>The pod spec may have an enforced node affinity or anti-affinity (<a href="https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity" rel="nofollow noreferrer">kubernetes documentation about node affinity</a>)</li>
<li>If <a href="https://kubernetes.io/docs/concepts/policy/pod-security-policy/" rel="nofollow noreferrer">Pod Security Policies</a> are enabled on the cluster, a security policy may be blocking access to a resource that the pod needs to run</li>
</ul>
<p>There are not the only solutions possible. More generally, a good start would be to look at the events associated to the daemon set:</p>
<pre><code>&gt; kubectl describe daemonsets NAME_OF_YOUR_DAEMON_SET
</code></pre>
