Files
my-docs/Containerization-Orchestration/Kubernetes/workloads/04-Deployment.md

2.3 KiB

🚀 Kubernetes Deployment Management

A guide to managing Deployments in Kubernetes, including listing, editing, scaling, rollbacks, and version history.


📋 Listing & Editing Deployments

🔹 List Deployments in a Namespace

kubectl get deploy -n <namespace>

🔹 Edit a Deployment

kubectl edit deployment.apps -n <namespace> <deployment-name>

🛠️ Note: Unlike ReplicaSets, Deployments automatically update existing Pods when the image or spec is changed. This makes Deployments ideal for rolling updates and version control.


📈 Scaling a Deployment

Scale the number of replicas (Pods) for a Deployment:

kubectl scale -n <namespace> deployment <deployment-name> --replicas=<number>

🔁 Rollout Management

🔹 View Rollout History

kubectl rollout history deployment -n <namespace> <deployment-name>

🔹 View Specific Revision

kubectl rollout history deployment -n <namespace> <deployment-name> --revision=<revision-number>

🔹 Roll Back to a Previous Revision

kubectl rollout undo deployment -n <namespace> <deployment-name> --to-revision=<revision-number>

Tip: Deployments maintain revision history. This allows you to roll back to a previous working version in case of failure.


🧾 Example Deployment YAML

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-1
  namespace: dev
  labels:
    label1: test1
    app.kubernetes.io/label2: test2
spec:
  replicas: 3
  selector:
    matchLabels:
      app.kubernetes.io/label2: test2
  template:
    metadata:
      labels:
        app.kubernetes.io/label2: test2
        os: linux
    spec:
      containers:
        - name: nginx
          image: nginx

🎯 Why use Deployments? They offer:

  • Rolling updates
  • Rollbacks
  • Declarative Pod management
  • History tracking

Summary

Feature Pod ReplicaSet Deployment
Manual creation 🚫 🚫
Scales Pods
Self-healing
Rolling updates
Revision history