2 min read | by Jordi Prats
When performing rolling updates we can see it's history using kubectl rollout history:
$ kubectl rollout history deploy pet2cattle
deployment.apps/pet2cattle
REVISION CHANGE-CAUSE
100 <none>
101 <none>
102 <none>
103 <none>
104 <none>
105 <none>
106 <none>
107 <none>
109 kubectl scale deployment/pet2cattle --replicas=2 --record=true
110 kubectl scale deployment/pet2cattle --replicas=5 --record=true
111 kubectl scale deployment/pet2cattle --replicas=1 --record=true
If have any problem with the update we can undo and update using kubectl rollout undo
To rollback to a specific revision we just need to specify to which revision on the history we want to rollback using the option --to-revision and the revision number we can find on the kubectl rollout history. For example:
$ kubectl rollout undo --to-revision 109 deployment/pet2cattle
deployment.apps/pet2cattle rolled back
If we don't specify any specific revision, it will rollback to the last version. Checking again the kubectl rollout history we won't be able to see an explicit rollback:
$ kubectl rollout history deploy pet2cattle
deployment.apps/pet2cattle
REVISION CHANGE-CAUSE
100 <none>
101 <none>
102 <none>
103 <none>
104 <none>
105 <none>
106 <none>
107 <none>
110 kubectl scale deployment/pet2cattle --replicas=5 --record=true
111 kubectl scale deployment/pet2cattle --replicas=1 --record=true
112 kubectl scale deployment/pet2cattle --replicas=2 --record=true
Instead, the revision we have rollback to is no longer available since it's revision number have been updated to be the latest (Notice the number of replicas)
Posted on 25/05/2021