[K8S] Forceer een Deployment re-deploy

Soms wil je een re-deploy doen van de pods in een Kubernetes deployment.

Er is geen nieuwe versie van de image dus een ‘set image’ is hier dan niet van toepassing.

Het opschalen met ‘scale’ up en dan weer down geeft geen garantie dat de nieuwe pods blijven draaien. Ook wil je geen onderbreking in de bereikbaarheid van de deployment dus schalen naar 0 is geen optie (de strategy zal het wellicht ook niet toestaan).

Dus de enige optie is een ‘redeploy label‘ in de deployment patchen en dat ziet er alsvolgt uit:

$ kubectl -n your-namespace patch deployment your-deployment -p "{\"spec\": {\"template\": {\"metadata\": { \"labels\": { \"redeploy\": \"$(date +%s)\"}}}}}"

Als je een watch op de pods zet zie je de nieuwe pods ge-deployed worden.

$ kubectl get pods -w

Have fun!