Bird
Raised Fist0
Kubernetesdevops~10 mins

Rollback to previous version in Kubernetes - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Rollback to previous version
Check current deployment version
↓
Identify previous stable version
↓
Run rollback command
↓
Kubernetes updates deployment
↓
Verify rollback success
↓
END
This flow shows how Kubernetes rolls back a deployment to a previous version by checking current state, applying rollback, and verifying success.
Execution Sample
Kubernetes
kubectl rollout undo deployment/my-app
kubectl rollout status deployment/my-app
Rollback the deployment 'my-app' to its previous version and check the status.
Process Table
StepActionCommandResultNotes
1Check current deployment versionkubectl rollout status deployment/my-appDeployment is at revision 3Shows current version is 3
2Rollback to previous versionkubectl rollout undo deployment/my-appDeployment rolled back to revision 2Rollback command triggers update
3Verify rollback statuskubectl rollout status deployment/my-appDeployment successfully rolled out revision 2Confirms rollback success
4End--Rollback complete, deployment stable at revision 2
💡 Rollback stops after deployment is stable at previous revision
Status Tracker
VariableStartAfter Step 2After Step 3Final
deployment_revision32 (rollback triggered)2 (confirmed)2
Key Moments - 2 Insights
Why does the rollback command not specify the exact revision number?
By default, 'kubectl rollout undo' rolls back to the immediately previous revision, as shown in execution_table step 2, so specifying revision is optional unless you want a specific older version.
What happens if the rollback fails?
If rollback fails, the status command in step 3 would show an error or incomplete rollout, indicating the deployment did not stabilize at the previous revision.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the deployment revision after the rollback command is run?
A3
B2
C1
D4
💡 Hint
Check the 'Result' column in step 2 of the execution_table
At which step does the deployment status confirm the rollback was successful?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Action' and 'Result' columns in step 3 of the execution_table
If you wanted to rollback to revision 1 instead of the previous one, what would you do?
ARun 'kubectl rollout restart deployment/my-app --to-revision=1'
BRun 'kubectl rollout status deployment/my-app --to-revision=1'
CRun 'kubectl rollout undo deployment/my-app --to-revision=1'
DRun 'kubectl delete deployment/my-app --to-revision=1'
💡 Hint
Refer to Kubernetes rollback syntax for specifying revision, related to step 2 command
Concept Snapshot
Rollback to previous version in Kubernetes:
- Use 'kubectl rollout undo deployment/<name>' to rollback.
- By default, rolls back to the immediately previous revision.
- Check status with 'kubectl rollout status deployment/<name>'.
- Specify revision with '--to-revision=N' if needed.
- Rollback updates deployment to stable older version.
Full Transcript
This visual execution shows how to rollback a Kubernetes deployment to a previous version. First, we check the current deployment revision using 'kubectl rollout status'. Then, we run 'kubectl rollout undo' to rollback to the previous revision. After that, we verify the rollback success again with 'kubectl rollout status'. The deployment revision changes from 3 to 2, confirming the rollback. If needed, you can specify a particular revision to rollback to using the '--to-revision' flag. This process ensures your deployment returns to a stable state if a newer version has issues.

Practice

(1/5)
1. What does the command kubectl rollout undo deployment/myapp do in Kubernetes?
easy
A. It updates the deployment 'myapp' to the latest image version.
B. It rolls back the deployment 'myapp' to its previous version.
C. It deletes the deployment 'myapp' permanently.
D. It scales the deployment 'myapp' to zero replicas.

Solution

  1. Step 1: Understand the command purpose

    The command kubectl rollout undo is used to revert a deployment to a previous state.
  2. Step 2: Apply to the given deployment

    Using deployment/myapp specifies which deployment to rollback.
  3. Final Answer:

    It rolls back the deployment 'myapp' to its previous version. -> Option B
  4. Quick Check:

    Rollback command = revert deployment [OK]
Hint: Rollback uses 'kubectl rollout undo' with deployment name [OK]
Common Mistakes:
  • Confusing rollback with delete command
  • Thinking it updates to latest version instead of previous
  • Using scale command instead of rollback
2. Which of the following is the correct syntax to rollback a deployment named 'webapp' to its previous version?
easy
A. kubectl rollout undo deployment/webapp
B. kubectl rollback deployment/webapp
C. kubectl undo deployment webapp
D. kubectl rollback undo webapp

Solution

  1. Step 1: Recall correct rollback syntax

    The correct command to rollback is kubectl rollout undo deployment/<name>.
  2. Step 2: Match syntax with deployment name

    Replacing <name> with 'webapp' gives kubectl rollout undo deployment/webapp.
  3. Final Answer:

    kubectl rollout undo deployment/webapp -> Option A
  4. Quick Check:

    Correct rollback syntax = rollout undo [OK]
Hint: Remember 'rollout undo' is the rollback command [OK]
Common Mistakes:
  • Using 'rollback' instead of 'rollout undo'
  • Incorrect order of words in command
  • Missing 'deployment/' prefix
3. Given the following commands executed in order:
kubectl apply -f deployment-v1.yaml
kubectl apply -f deployment-v2.yaml
kubectl rollout undo deployment/myapp

What will be the current version of the deployment 'myapp' after the last command?
medium
A. Version 1 (deployment-v1.yaml)
B. Version 2 (deployment-v2.yaml)
C. No change, still version 2
D. Deployment deleted

Solution

  1. Step 1: Understand deployment updates

    First, version 1 is applied, then version 2 updates the deployment.
  2. Step 2: Rollback command effect

    The rollback command reverts the deployment to the previous version, which is version 1.
  3. Final Answer:

    Version 1 (deployment-v1.yaml) -> Option A
  4. Quick Check:

    Rollback reverts to last version before update [OK]
Hint: Rollback returns to version before last update [OK]
Common Mistakes:
  • Assuming rollback deletes deployment
  • Thinking rollback keeps current version
  • Confusing rollback with reapply
4. You tried to rollback a deployment using kubectl rollout undo deployment/myapp but got an error: error: no rollout found. What is the most likely cause?
medium
A. Rollback command requires a namespace flag.
B. You misspelled the deployment name in the command.
C. The deployment 'myapp' has no previous versions to rollback to.
D. The Kubernetes cluster is down.

Solution

  1. Step 1: Analyze the error message

    The error 'no rollout found' means no previous rollout history exists for rollback.
  2. Step 2: Identify cause

    This usually happens if the deployment was never updated or has only one version.
  3. Final Answer:

    The deployment 'myapp' has no previous versions to rollback to. -> Option C
  4. Quick Check:

    No rollout history = no rollback possible [OK]
Hint: Check rollout history before rollback [OK]
Common Mistakes:
  • Assuming cluster is down causes this error
  • Forgetting to check deployment name spelling
  • Thinking rollback always works without history
5. You have a deployment 'api-server' with three revisions in history. You want to rollback to revision 2 specifically. Which command should you use?
hard
A. kubectl rollout undo deployment/api-server revision=2
B. kubectl rollback deployment/api-server --revision=2
C. kubectl undo deployment/api-server revision 2
D. kubectl rollout undo deployment/api-server --to-revision=2

Solution

  1. Step 1: Recall rollback to specific revision syntax

    The correct syntax to rollback to a specific revision is kubectl rollout undo deployment/<name> --to-revision=<number>.
  2. Step 2: Apply to 'api-server' and revision 2

    Replacing placeholders gives kubectl rollout undo deployment/api-server --to-revision=2.
  3. Final Answer:

    kubectl rollout undo deployment/api-server --to-revision=2 -> Option D
  4. Quick Check:

    Use '--to-revision' flag to rollback specific version [OK]
Hint: Use '--to-revision' flag to rollback specific version [OK]
Common Mistakes:
  • Using incorrect flags like --revision or wrong command order
  • Omitting '--to-revision' flag
  • Using 'rollback' instead of 'rollout undo'
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard