Below is the clean and correct command sequence for practicing Kubernetes Deployment, Scaling, Rolling Update, Rollout History, and Rollback.


1. Create a Deployment YAML file

vim deployment.yaml

Use this YAML:

apiVersion: apps/v1
kind: Deployment

metadata:
  name: nginx-deployment
  labels:
    app: nginx

spec:
  replicas: 3

  selector:
    matchLabels:
      app: nginx

  template:
    metadata:
      labels:
        app: nginx

    spec:
      containers:
        - name: nginx
          image: nginx:1.14.2
          ports:
            - containerPort: 80

Save and exit:

Esc
:wq
Enter

2. Create the Deployment

kubectl apply -f deployment.yaml

Check the Deployment:

kubectl get deployment

Watch the Deployment:

kubectl get deployment -w

Press:

Ctrl + C

to stop watching.


3. Check all resources

kubectl get all

Check Pods:

kubectl get pods

Check ReplicaSets:

kubectl get rs

4. Learn kubectl create deployment

Display help:

kubectl create deployment -h

Create another Deployment:

kubectl create deployment app1 --image=nginx

Check all Deployments:

kubectl get deployments

Check only app1:

kubectl get deployment app1

5. Scale the Deployment

Scale app1 to 3 replicas:

kubectl scale deployment app1 --replicas=3

Check:

kubectl get deployment app1

Watch the change:

kubectl get deployment app1 -w

Stop watching:

Ctrl + C

Check Pods:

kubectl get pods

6. Scale Down

Scale app1 from 3 replicas to 1:

kubectl scale deployment app1 --replicas=1

Watch:

kubectl get deployment app1 -w

Check:

kubectl get deployment app1

7. Check Rollout Status

kubectl rollout status deployment app1

Check rollout history:

kubectl rollout history deployment app1

Check Pods:

kubectl get pods

8. Delete app1

kubectl delete deployment app1

Verify:

kubectl get deployment
kubectl get pods

9. Delete the NGINX Deployment

If you want to start the Deployment lab again:

kubectl delete deployment nginx-deployment

Check:

kubectl get deployment
kubectl get pods

10. Create the Deployment again from YAML

Check the YAML:

cat deployment.yaml

Create it:

kubectl apply -f deployment.yaml

Check:

kubectl get deployment

Check Pods:

kubectl get pods

Check ReplicaSets:

kubectl get rs

11. Check Rollout Status

kubectl rollout status deployment nginx-deployment

Expected:

deployment "nginx-deployment" successfully rolled out

12. Check Rollout History

kubectl rollout history deployment nginx-deployment

You should initially have something similar to:

REVISION  CHANGE-CAUSE
1         <none>

13. Perform a Rolling Update

Current image:

nginx:1.14.2

Change it to:

nginx:latest

Command:

kubectl set image deployment nginx-deployment nginx=nginx:latest

Check rollout:

kubectl rollout status deployment nginx-deployment

Check history:

kubectl rollout history deployment nginx-deployment

Check ReplicaSets:

kubectl get rs

Check Pods:

kubectl get pods

14. Verify the New Image

First find the Pod name:

kubectl get pods

Then:

kubectl describe pod <POD_NAME> | grep -i image -A5

Example:

kubectl describe pod nginx-deployment-xxxxx | grep -i image -A5

You should see:

Image: nginx:latest

15. Check Deployment Image Directly

You can also use:

kubectl get deployment nginx-deployment -o jsonpath='{.spec.template.spec.containers[0].image}'

Expected:

nginx:latest

16. Check Rollout History

kubectl rollout history deployment nginx-deployment

You should now have two revisions:

REVISION  CHANGE-CAUSE
1         <none>
2         <none>

The exact output can vary depending on your Kubernetes version and how the Deployment was created.


17. View a Specific Revision

For example:

kubectl rollout history deployment nginx-deployment --revision=2

This shows information about Revision 2.


18. Rollback the Deployment

Suppose nginx:latest has a problem.

Rollback:

kubectl rollout undo deployment nginx-deployment

Check rollout:

kubectl rollout status deployment nginx-deployment

Check history:

kubectl rollout history deployment nginx-deployment

19. Verify the Rollback

Check ReplicaSets:

kubectl get rs

Check Pods:

kubectl get pods

Check the current image:

kubectl get deployment nginx-deployment -o jsonpath='{.spec.template.spec.containers[0].image}'

Expected:

nginx:1.14.2

You can also verify with:

kubectl describe pod <POD_NAME> | grep -i image -A5

20. Complete Correct Command List

Here is the clean command list without the incorrect commands from your original notes:

# Create YAML file
vim deployment.yaml

# Apply Deployment
kubectl apply -f deployment.yaml

# Check Deployment
kubectl get deployment

# Watch Deployment
kubectl get deployment -w

# Check all resources
kubectl get all

# Check Pods
kubectl get pods

# Check ReplicaSets
kubectl get rs

# Deployment help
kubectl create deployment -h

# Create a Deployment
kubectl create deployment app1 --image=nginx

# Check Deployments
kubectl get deployments

# Check specific Deployment
kubectl get deployment app1

# Scale to 3 replicas
kubectl scale deployment app1 --replicas=3

# Watch scaling
kubectl get deployment app1 -w

# Scale down to 1 replica
kubectl scale deployment app1 --replicas=1

# Check Deployment
kubectl get deployment app1

# Check rollout status
kubectl rollout status deployment app1

# Check rollout history
kubectl rollout history deployment app1

# Delete app1
kubectl delete deployment app1

# Delete nginx Deployment
kubectl delete deployment nginx-deployment

# Apply YAML again
kubectl apply -f deployment.yaml

# Check rollout status
kubectl rollout status deployment nginx-deployment

# Check rollout history
kubectl rollout history deployment nginx-deployment

# Update image
kubectl set image deployment nginx-deployment nginx=nginx:latest

# Check rollout status
kubectl rollout status deployment nginx-deployment

# Check rollout history
kubectl rollout history deployment nginx-deployment

# Check ReplicaSets
kubectl get rs

# Check Pods
kubectl get pods

# Check current image
kubectl get deployment nginx-deployment \
-o jsonpath='{.spec.template.spec.containers[0].image}'

# View specific revision
kubectl rollout history deployment nginx-deployment --revision=2

# Rollback
kubectl rollout undo deployment nginx-deployment

# Check rollback status
kubectl rollout status deployment nginx-deployment

# Check history after rollback
kubectl rollout history deployment nginx-deployment

# Check ReplicaSets
kubectl get rs

# Check Pods
kubectl get pods

# Verify image after rollback
kubectl get deployment nginx-deployment \
-o jsonpath='{.spec.template.spec.containers[0].image}'

Important CKA Commands ⭐

These are the commands I recommend remembering:

kubectl apply -f deployment.yaml

kubectl get deployment

kubectl get pods

kubectl get rs

kubectl scale deployment <name> --replicas=3

kubectl rollout status deployment <name>

kubectl rollout history deployment <name>

kubectl set image deployment <name> <container>=<image>

kubectl rollout undo deployment <name>

Deployment lifecycle

deployment.yaml
      │
      ▼
Deployment
      │
      ▼
ReplicaSet
      │
      ▼
Pods
      │
      ▼
Running

Rolling Update

nginx:1.14.2
      │
      │ kubectl set image
      ▼
nginx:latest
      │
      ▼
New ReplicaSet
      │
      ▼
New Pods

Rollback

nginx:latest
      │
      │ kubectl rollout undo
      ▼
Previous configuration
      │
      ▼
nginx:1.14.2

Note: I intentionally removed kubectl scale deployment app1 -w, kubectl scale deploy app1 -w, kubectl rollout delete ..., and the deprecated --record usage from your original command list.

Total Page Visits: 65 - Today Page Visits: 65

Leave a Reply

Your email address will not be published. Required fields are marked *