<p>I can see that both <code>kubectl delete pod</code> and <code>kubectl set env</code> will restart.
I would like to know the best practice to be followed, is there any advantage of using <strong>set env</strong></p>
<p>Other than these two options, is there any other better option to restart a pod?</p>

Vineeth NG
<p>Although your question is not really clear, I believe that you are now using deployment or other types of replica set to spawn the pods.</p>
<p>So, neither <code>kubectl delete pod</code> nor <code>kubectl set env</code> are the correct one to restart all the replicas in the Kubernetes. The proper way to restart all the pod under a replica set is <code>kubectl rollout restart &lt;type-of-replica-set&gt;/&lt;name&gt;</code>.</p>
<p>But <code>kubectl delete pod</code> and <code>kubectl set env</code> still work by seeing the conclusion only. Here are the reasons.</p>
<p><code>kubectl delete pod</code> will reduce the number of desired pods for your replica set. The replica set controller will reconcile and spawn a new pod in order to fulfill your desired number defined.</p>
<p><code>kubectl set env</code> is used for updating the environment variable in the specification. So, once you run the command, the whole version in the replica set is bumped. The controller will reconcile and try to spawn a new set of pods for you.</p>
<p>Eventually, both of the commands can lead you to the restart of the pods. But the commands are not designed for restart.</p>
