<p>I have a running <code>DaemonSet</code> which is running on all nodes. I want to remove it from a node in order to completely drain it, as <code>kubectl drain</code> doesn't get rid of them. Without deleting my <code>DaemonSet</code>, what's a good way to temporarily remove those pods from the node? I've tried draining it and deleting the <code>DaemonSet</code> pods, but the <code>DaemonSet</code> will still reschedule them, disregarding that the node is set as <code>Unschedulable: true</code>.</p>

<p>You need to use <code>--ignore-daemonsets</code> key when you drain kubernetes node:</p>

<blockquote>
  <p>--ignore-daemonsets=false: Ignore DaemonSet-managed pods.</p>
</blockquote>

<p>So, in order to drain kubernetes node with <code>DaemonSets</code> in cluster, you need to execute:</p>

<pre><code>kubectl drain &lt;node_name&gt; --ignore-daemonsets
</code></pre>

<p>If you need to <strong>Remove DaemonSet pod from a node completely</strong>, you can specify a <code>.spec.template.spec.nodeSelector</code> in <code>DaemonSet</code> (the DaemonSet controller will create Pods on nodes which match that node selector) and set that label to all nodes except the one you need to completely drain.</p>
