<p>In the <a href="https://kubernetes.io/docs/concepts/configuration/overview/#container-images" rel="noreferrer">Kubernetes documentation</a> it mentions that the caching semantic of using <code>ImagePullPolicy: Always</code> makes the ImagePullPolicy quite efficient. What reasons would I want to choose a different ImagePullPolicy?</p>

<p>It heavily depends on your versioning/tagging strategy. </p>

<p>When new replicas of your application are created (because your app has scaled up, or a pod has died and it's been replaced by a new pod), if you use <code>ImagePullPolicy: Always</code> and you have pushed a different version of your application using the same tag (like people do when using <code>latest</code>), the new created replicas might run a totally different version of the application than the rest of the replicas, leading to an inconsistent behavior.</p>

<p>You also may want to use a different value than <code>Always</code> when <a href="https://stackoverflow.com/a/42564211/563072">on a development environment like minikube</a>.</p>
