DEV Community

Cover image for 🎯 Scenario #9 β€” Create a Deployment, Roll Out an Updated Version and Rollback
Latchu@DevOps
Latchu@DevOps

Posted on

🎯 Scenario #9 β€” Create a Deployment, Roll Out an Updated Version and Rollback

This scenario covers:

  • Creating a Deployment
  • Verifying rollout
  • Updating image (rolling update)
  • Verifying rollout status
  • Checking rollout history
  • Performing rollback

βœ… Step 1 β€” Create the Deployment (nginx v1)

Create file:

# deploy-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-app
  template:
    metadata:
      labels:
        app: nginx-app
    spec:
      containers:
      - name: nginx
        image: nginx:1.21
        ports:
        - containerPort: 80
Enter fullscreen mode Exit fullscreen mode

Apply:

kubectl apply -f deploy-nginx.yaml
Enter fullscreen mode Exit fullscreen mode

βœ… Step 2 β€” Verify Deployment & Pods

Check Deployment:

kubectl get deploy
Enter fullscreen mode Exit fullscreen mode

Check ReplicaSet (auto-created by Deployment):

kubectl get rs
Enter fullscreen mode Exit fullscreen mode

Check Pods:

kubectl get pods -l app=nginx-app -o wide
or
kubectl get pods -o wide
Enter fullscreen mode Exit fullscreen mode

You should see 3 Pods from a ReplicaSet.

1


βœ… Step 3 β€” Observe Rollout Status

kubectl rollout status deployment/nginx-deploy
Enter fullscreen mode Exit fullscreen mode

Expected:

deployment "nginx-deploy" successfully rolled out
Enter fullscreen mode Exit fullscreen mode

2


🎨 Step 4 β€” Update Deployment (Rolling Update)

Let’s update the container image from 1.21 β†’ 1.25 using YAML edit:

kubectl apply -f deploy-nginx.yaml
Enter fullscreen mode Exit fullscreen mode

3


πŸ“‘ Step 5 β€” Watch Rolling Update in Real Time

kubectl get pods -l app=nginx-app -w
Enter fullscreen mode Exit fullscreen mode

You will see:

  • old pods terminating
  • new pods starting

Rolling updates replace pods gradually β†’ ensures zero downtime.

4


πŸ•΅οΈβ€β™‚οΈ Step 6 β€” Check Rollout History

kubectl rollout history deployment/nginx-deploy
Enter fullscreen mode Exit fullscreen mode

You will see revisions:

deployment.apps/nginx-deploy
REVISION  CHANGE-CAUSE
1         <none>
2         kubectl set image deployment/nginx-deploy nginx=nginx:1.25
Enter fullscreen mode Exit fullscreen mode

5


πŸ”„ Step 7 β€” Rollback Deployment (If Needed)

Rollback to previous revision:

kubectl rollout undo deployment/nginx-deploy
Enter fullscreen mode Exit fullscreen mode

Verify again:

kubectl rollout status deployment/nginx-deploy
Enter fullscreen mode Exit fullscreen mode

6


🧹 Step 8 β€” Validate Final Pods

kubectl get pods -l app=nginx-app -o wide
Enter fullscreen mode Exit fullscreen mode

You will see pods with the updated (or rolled back) version.


🌟 Thanks for reading! If this post added value, a like ❀️, follow, or share would encourage me to keep creating more content.


β€” Latchu | Senior DevOps & Cloud Engineer

☁️ AWS | GCP | ☸️ Kubernetes | πŸ” Security | ⚑ Automation
πŸ“Œ Sharing hands-on guides, best practices & real-world cloud solutions

Top comments (0)