What if you could update your website without anyone noticing a thing?
Why Blue-green deployments in Kubernetes? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine you have a website that millions of people visit every day. You want to update it with new features, but if you just replace the old version with the new one directly, visitors might see errors or downtime.
Manually updating the website means stopping the old version, starting the new one, and hoping everything works perfectly. If something goes wrong, users get stuck with broken pages, and fixing it quickly is stressful and error-prone.
Blue-green deployments let you run two identical environments: one live (blue) and one idle (green). You prepare the new version in green, then switch traffic smoothly from blue to green. If problems happen, you can quickly switch back, avoiding downtime and errors.
kubectl delete deployment old-version kubectl apply -f new-version.yaml
kubectl apply -f green-deployment.yaml
kubectl patch service my-service -p '{"spec":{"selector":{"version":"green"}}}'It enables seamless updates with zero downtime and quick rollback, keeping users happy and systems stable.
A popular online store uses blue-green deployments to update their checkout system without interrupting customers, ensuring smooth shopping even during big sales.
Manual updates risk downtime and errors.
Blue-green deployments run two environments for safe switching.
This method ensures smooth updates and fast recovery.
Practice
Solution
Step 1: Understand blue-green deployment concept
Blue-green deployment runs two versions of an app side by side to avoid downtime.Step 2: Identify the main goal
The main goal is to switch user traffic smoothly from the old version (blue) to the new version (green).Final Answer:
To update applications without downtime by switching traffic between two versions -> Option AQuick Check:
Blue-green deployment = zero downtime updates [OK]
- Confusing blue-green with scaling pods
- Thinking it is for backups
- Mixing it with auto-scaling
Solution
Step 1: Identify traffic routing resource
In Kubernetes, a Service routes traffic to pods based on labels.Step 2: Understand blue-green switching
Switching traffic between blue and green versions is done by changing the Service selector to point to the desired pods.Final Answer:
Service -> Option CQuick Check:
Service routes traffic in blue-green deployments [OK]
- Choosing ConfigMap which stores config data
- Selecting PersistentVolume which manages storage
- Picking Ingress Controller which manages external access
selector: app: myapp version: blue
What happens if you change the selector to
version: green?Solution
Step 1: Understand Service selector role
The Service selector chooses pods matching the labels to send traffic to.Step 2: Effect of changing selector
Changing selector to version: green directs traffic only to pods labeled green, ignoring blue pods.Final Answer:
Traffic will be routed to pods labeled with version green -> Option BQuick Check:
Selector change = traffic to matching pods [OK]
- Assuming traffic splits automatically
- Thinking selector change breaks traffic
- Believing old pods still get traffic
Solution
Step 1: Check traffic routing setup
If users still see blue, traffic is likely still routed to blue pods.Step 2: Identify cause of routing
This happens if the Service selector was not updated to green pods after deploying green version.Final Answer:
The Service selector was not updated to point to green pods -> Option AQuick Check:
Service selector update needed to switch traffic [OK]
- Assuming pods failed without checking
- Thinking Deployment deletion causes this
- Blaming cluster resource issues first
- Blue pods running version 1
- Green pods running version 2
Which sequence of steps ensures a safe switch?
Solution
Step 1: Switch traffic safely
First, update the Service selector to point to green pods so new traffic goes to version 2.Step 2: Confirm green pods are healthy
Check green pods are running well before removing blue pods to avoid downtime.Step 3: Remove old version
After confirmation, delete blue pods to free resources.Final Answer:
Update Service selector to green pods, then delete blue pods after confirming green is healthy -> Option DQuick Check:
Switch traffic first, confirm health, then remove old [OK]
- Deleting blue pods before switching traffic
- Not confirming green pods health
- Updating Deployment without switching Service selector
