Bird
Raised Fist0
Kubernetesdevops~3 mins

Why Rolling update strategy in Kubernetes? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could update your app without your users ever noticing a thing?

The Scenario

Imagine you have a website running on several servers. You want to update the website without making it go offline. So, you stop one server, update it, then start it again. Then you do the same for the next server, and so on.

The Problem

This manual way is slow and risky. If you stop too many servers at once, your website breaks. If you forget to start a server, users get errors. It's hard to keep track and fix mistakes quickly.

The Solution

The rolling update strategy in Kubernetes updates your app step-by-step automatically. It replaces old versions with new ones little by little, keeping the app running all the time. If something goes wrong, it stops and fixes it before continuing.

Before vs After
✗ Before
kubectl delete pod pod-1
kubectl apply -f new-version.yaml
kubectl delete pod pod-2
kubectl apply -f new-version.yaml
✓ After
kubectl set image deployment/myapp myapp=myapp:v2
kubectl rollout status deployment/myapp
What It Enables

You can update your app smoothly without downtime, keeping users happy and your service reliable.

Real Life Example

A popular online store updates its product page code. Using rolling updates, customers keep shopping without noticing any interruption during the update.

Key Takeaways

Manual updates risk downtime and errors.

Rolling updates replace app versions gradually and safely.

This keeps services running smoothly during changes.

Practice

(1/5)
1. What is the main purpose of a rolling update in Kubernetes?
easy
A. To update an application without downtime by gradually replacing pods
B. To delete all pods and recreate them at once
C. To backup the current state of the application
D. To scale the application to zero replicas

Solution

  1. Step 1: Understand rolling update concept

    A rolling update replaces pods one by one to avoid downtime.
  2. Step 2: Compare options with concept

    Only To update an application without downtime by gradually replacing pods describes gradual replacement without downtime.
  3. Final Answer:

    To update an application without downtime by gradually replacing pods -> Option A
  4. Quick Check:

    Rolling update = gradual pod replacement [OK]
Hint: Rolling update means update pods one by one without downtime [OK]
Common Mistakes:
  • Thinking rolling update deletes all pods at once
  • Confusing rolling update with backup
  • Assuming rolling update scales pods to zero
2. Which kubectl command starts a rolling update by changing the image of a deployment?
easy
A. kubectl set image deployment/myapp myapp-container=myimage:v2
B. kubectl rollout undo deployment/myapp
C. kubectl scale deployment/myapp --replicas=0
D. kubectl get pods --watch

Solution

  1. Step 1: Identify command to update image

    The command to update a deployment's image is 'kubectl set image'.
  2. Step 2: Match command with options

    kubectl set image deployment/myapp myapp-container=myimage:v2 uses 'kubectl set image' correctly to start rolling update.
  3. Final Answer:

    kubectl set image deployment/myapp myapp-container=myimage:v2 -> Option A
  4. Quick Check:

    Change image = kubectl set image [OK]
Hint: Use kubectl set image to start rolling update [OK]
Common Mistakes:
  • Using rollout undo to start update
  • Scaling replicas to zero instead of updating image
  • Using get pods to update image
3. After running kubectl set image deployment/myapp myapp-container=myimage:v2, what does kubectl rollout status deployment/myapp show?
medium
A. The configuration details of the deployment
B. The current rollout progress of the deployment update
C. The logs of the deployment pods
D. The list of pods in the deployment

Solution

  1. Step 1: Understand purpose of rollout status

    The command 'kubectl rollout status' shows progress of deployment updates.
  2. Step 2: Compare options with command purpose

    The current rollout progress of the deployment update correctly describes rollout progress; others describe different commands.
  3. Final Answer:

    The current rollout progress of the deployment update -> Option B
  4. Quick Check:

    Rollout status = update progress [OK]
Hint: Rollout status shows update progress, not pod list or logs [OK]
Common Mistakes:
  • Confusing rollout status with pod listing
  • Expecting logs from rollout status
  • Thinking rollout status shows config details
4. You ran kubectl set image deployment/myapp myapp-container=myimage:v2 but the new pods crash. Which command helps you revert to the previous version?
medium
A. kubectl scale deployment/myapp --replicas=0
B. kubectl delete deployment myapp
C. kubectl rollout undo deployment/myapp
D. kubectl get pods --all-namespaces

Solution

  1. Step 1: Identify command to revert deployment

    'kubectl rollout undo' reverts deployment to previous version.
  2. Step 2: Match command with options

    kubectl rollout undo deployment/myapp correctly reverts the deployment; others do not revert updates.
  3. Final Answer:

    kubectl rollout undo deployment/myapp -> Option C
  4. Quick Check:

    Undo rollout = kubectl rollout undo [OK]
Hint: Use rollout undo to revert bad updates quickly [OK]
Common Mistakes:
  • Deleting deployment instead of undoing
  • Scaling replicas to zero instead of reverting
  • Using get pods which only lists pods
5. You want to update your deployment with zero downtime and ensure at least 2 pods are always available during the update. Which rolling update settings in the deployment spec help achieve this?
hard
A. Set 'maxUnavailable' to 1 and 'maxSurge' to 1 in 'rollingUpdate' strategy
B. Set 'maxUnavailable' to 2 and 'maxSurge' to 0 in 'rollingUpdate' strategy
C. Set 'maxUnavailable' to 3 and 'maxSurge' to 3 in 'rollingUpdate' strategy
D. Set 'maxUnavailable' to 0 and 'maxSurge' to 2 in 'rollingUpdate' strategy

Solution

  1. Step 1: Understand maxUnavailable and maxSurge

    'maxUnavailable' controls how many pods can be down; 'maxSurge' controls extra pods created during update.
  2. Step 2: Ensure at least 2 pods always available

    Setting 'maxUnavailable' to 0 means no pods go down; 'maxSurge' 2 allows 2 extra pods to be created for smooth update.
  3. Final Answer:

    Set 'maxUnavailable' to 0 and 'maxSurge' to 2 in 'rollingUpdate' strategy -> Option D
  4. Quick Check:

    Zero unavailable + surge 2 = no downtime, 2 pods always up [OK]
Hint: maxUnavailable 0 means no pod down; maxSurge adds extra pods [OK]
Common Mistakes:
  • Setting maxUnavailable > 0 causes downtime
  • Setting maxSurge to 0 prevents extra pods during update
  • Choosing high maxUnavailable and maxSurge causing instability
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