Upgrades

This note describe how the deployments get updated with new changes.

Deployment has replicasets under the hood. When a new update is rollout, deployment creates a new replicaset with new pods getting created and old pods from previous replicaset getting down, while preserving the old replicaset. This can be seen by listing down replicasets using kubectl get replicasets.

This way, it enables us to rollback to previous state as and when required. We can do rollback as follows.

kubectl rollout undo <deployment>

We have undo to specific revision using --to-revision flag.

k rollout undo deployment nginx --to-revision 2