<p>If there is an update in the docker image, rolling update strategy will update all the pods one by one in a daemonset, similarly is it possible to restart the pods gracefully without any changes the daemonset config or can it be triggered explicitly?</p>

<p>Currently, I am doing it manually by</p>

<p><code>kubectl delete pod &lt;pod-name&gt;</code>
One by one until each pod gets into running state.</p>

<p>You could try and use <a href="https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#maintenance-on-a-node" rel="nofollow noreferrer">Node maintenance operations</a>:</p>

<blockquote>
  <p>Use kubectl drain to <strong>gracefully terminate all pods on the node</strong> while marking the node as unschedulable (with <a href="https://stackoverflow.com/a/48078350/6309"><code>--ignore-daemonsets</code></a>, from <a href="https://stackoverflow.com/users/9065705/konstantin-vustin">Konstantin Vustin</a>'s <a href="https://stackoverflow.com/questions/52866960/kubernetes-how-to-gracefully-delete-pods-in-daemonset#comment92649044_52867165">comment</a>):</p>
</blockquote>

<pre><code>kubectl drain $NODENAME --ignore-daemonsets
</code></pre>

<blockquote>
  <p>This keeps new pods from landing on the node while you are trying to get them off.</p>
</blockquote>

<p>Then:</p>

<blockquote>
  <p>Make the node schedulable again:</p>
</blockquote>

<pre><code>kubectl uncordon $NODENAME
</code></pre>
