<p>I'm running GKE cluster and there is a deployment that uses image which I push to Container Registry on GCP, issue is - even though I build the image and push it with <code>latest</code> tag, the deployment keeps on creating new pods with the old one cached - is there a way to update it without re-deploying (aka without destroying it first)? </p>

<p>There is a known issue with the kubernetes that even if you change configmaps the old config remains and you can either redeploy or workaround with </p>

<pre><code>kubectl patch deployment $deployment -n $ns -p \
  "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}"
</code></pre>

<p>is there something similar with cached images? </p>

CptDolphin
<p>1) You should change the way of your thinking. Destroying pod is not bad. Application downtime is what is bad. You should always plan your deployments in such a way that it can tolerate one pod death. Use multiple replicas for stateless apps and use clusters for stateful apps. Use Kubernetes rolling update for any changes to your deployments. Rolling updates have many extremely important settings which directly influence the uptime of your apps. Read it carefully.</p>

<p>2) The reason why Kubernetes launches old image is that by default it uses 
<code>imagePullPolicy: IfNotPresent</code>. Use <code>imagePullPolicy: Always</code> and it will always try to pull latest version on redeploy. </p>
