āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Kubernetes: āļ­āļ˜āļīāļšāļēāļĒ Pods, Services āđāļĨāļ° Deployments āļ­āļĒāđˆāļēāļ‡āļĨāļ°āđ€āļ­āļĩāļĒāļ”

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Kubernetes āđ€āļāļĩāđˆāļĒāļ§āļāļąāļš Pods, Services āđāļĨāļ° Deployments āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ YAML āļāļĨāđ„āļ networking āļ āļēāļĒāđƒāļ™ āđāļĨāļ°āļāļĨāļĒāļļāļ—āļ˜āđŒ scaling āļŠāļģāļŦāļĢāļąāļšāļ›āļĩ 2026

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Kubernetes āđ€āļāļĩāđˆāļĒāļ§āļāļąāļš Pods, Services āđāļĨāļ° Deployments

āđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļš Kubernetes āļ„āļģāļ–āļēāļĄāļĄāļąāļāļˆāļ°āđ€āļ™āđ‰āļ™āđ„āļ›āļ—āļĩāđˆāļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒāļžāļ·āđ‰āļ™āļāļēāļ™āļŠāļēāļĄāļ›āļĢāļ°āđ€āļ āļ— āđ„āļ”āđ‰āđāļāđˆ Pods, Services āđāļĨāļ° Deployments āļāļēāļĢāđ€āļ‚āđ‰āļēāđƒāļˆāļ§āđˆāļēāļŠāļīāđˆāļ‡āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ āļ•āļąāđ‰āļ‡āđāļ•āđˆāļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒ āļāļēāļĢāļāļģāļŦāļ™āļ”āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒ āđ„āļ›āļˆāļ™āļ–āļķāļ‡āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āđāļšāļšāļ„āđˆāļ­āļĒāđ€āļ›āđ‡āļ™āļ„āđˆāļ­āļĒāđ„āļ› āļˆāļ°āļŠāđˆāļ§āļĒāđāļĒāļāļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļ—āļĩāđˆāļˆāļģāļ„āļģāļˆāļģāļāļąāļ”āļ„āļ§āļēāļĄāđ„āļ”āđ‰āļ­āļ­āļāļˆāļēāļāļœāļđāđ‰āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ–āļ­āļ­āļāđāļšāļšāļĢāļ°āļšāļšāļŠāļģāļŦāļĢāļąāļš production āđ„āļ”āđ‰āļˆāļĢāļīāļ‡

āļ„āļđāđˆāļĄāļ·āļ­āļ™āļĩāđ‰āļˆāļ°āļ­āļ˜āļīāļšāļēāļĒāđāļ•āđˆāļĨāļ°āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒ YAML āļĢāļ°āļ”āļąāļš production āļ­āļ˜āļīāļšāļēāļĒāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ āļēāļĒāđƒāļ™āļ—āļĩāđˆāļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāđƒāļŦāđ‰āļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļ āđāļĨāļ°āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ•āļģāđāļŦāļ™āđˆāļ‡ DevOps āđāļĨāļ° Platform Engineering

āļŠāļĢāļļāļ›āļŠāļąāđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§

Pod āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļšāļĢāļąāļ™āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§āļŦāļĢāļ·āļ­āļĄāļēāļāļāļ§āđˆāļēāļšāļ™āđ‚āļŦāļ™āļ”āđ€āļ”āļĩāļĒāļ§ Deployment āđƒāļŠāđ‰āļˆāļąāļ”āļāļēāļĢ Pod āļŦāļĨāļēāļĒāđ† replica āđāļĨāļ°āļāļēāļĢ rollout āļŠāđˆāļ§āļ™ Service āļˆāļąāļ”āļŦāļē endpoint āđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāđ€āļžāļ·āđˆāļ­āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ Pod āđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™ āļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒāļ—āļąāđ‰āļ‡āļŠāļēāļĄāļ™āļĩāđ‰āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļāļēāļĢāļˆāļąāļ”āļāļēāļĢ workload āļ›āļĢāļ°āļĄāļēāļ“ 80% āđƒāļ™ Kubernetes cluster āļ—āļĩāđˆāļĢāļąāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ v1.35 āļŦāļĢāļ·āļ­āđƒāļŦāļĄāđˆāļāļ§āđˆāļē

āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆ Kubernetes Pods: āļŦāļ™āđˆāļ§āļĒāļ—āļĩāđˆāđ€āļĨāđ‡āļāļ—āļĩāđˆāļŠāļļāļ”āļ—āļĩāđˆāļŠāļēāļĄāļēāļĢāļ– Deploy āđ„āļ”āđ‰

Pod āļ„āļ·āļ­āļŦāļ™āđˆāļ§āļĒāļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡āļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢāđƒāļ™ Kubernetes āļ‹āļķāđˆāļ‡āļŦāđˆāļ­āļŦāļļāđ‰āļĄāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§āļŦāļĢāļ·āļ­āļĄāļēāļāļāļ§āđˆāļēāļ—āļĩāđˆāđāļŠāļĢāđŒ network namespace, IPC namespace āđāļĨāļ° storage volumes āđ€āļ”āļĩāļĒāļ§āļāļąāļ™ āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ—āļļāļāļ•āļąāļ§āđƒāļ™ Pod āļˆāļ°āđ„āļ”āđ‰āļĢāļąāļš IP address āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļŠāļ·āđˆāļ­āļŠāļēāļĢāļāļąāļšāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļžāļĩāđˆāļ™āđ‰āļ­āļ‡āļœāđˆāļēāļ™ localhost āđ„āļ”āđ‰

āļĢāļđāļ›āđāļšāļš single-container Pod āđ€āļ›āđ‡āļ™āļ—āļĩāđˆāļ™āļīāļĒāļĄāļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ” Multi-container Pods āļĄāļĩāđ„āļ§āđ‰āļŠāļģāļŦāļĢāļąāļšāļŠāļ–āļēāļ™āļāļēāļĢāļ“āđŒ sidecar āđ€āļŠāđˆāļ™ log collectors, service meshes āļŦāļĢāļ·āļ­ init containers āļ—āļĩāđˆāđ€āļ•āļĢāļĩāļĒāļĄ filesystem āļāđˆāļ­āļ™āļ—āļĩāđˆ process āļŦāļĨāļąāļāļˆāļ°āđ€āļĢāļīāđˆāļĄāļ—āļģāļ‡āļēāļ™

yaml
# api-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: api-server
  labels:
    app: api
    version: v2
spec:
  containers:
    - name: api
      image: registry.example.com/api:3.1.0
      ports:
        - containerPort: 8080
      resources:
        requests:
          cpu: "250m"        # 0.25 CPU core reserved
          memory: "256Mi"    # 256 MB reserved
        limits:
          cpu: "500m"        # hard cap at 0.5 core
          memory: "512Mi"    # OOMKilled beyond this
      readinessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 5
        periodSeconds: 10
      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 15
        periodSeconds: 20

āļšāļĨāđ‡āļ­āļ resources āļĄāļĩāļ„āļ§āļēāļĄāļŠāļģāļ„āļąāļāļĄāļēāļāđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ requests āļāļģāļŦāļ™āļ”āļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢ āđ‚āļ”āļĒ scheduler āļˆāļ°āļ§āļēāļ‡ Pod āļšāļ™āđ‚āļŦāļ™āļ”āļ—āļĩāđˆāļĄāļĩāļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļžāļĩāļĒāļ‡āļžāļ­ āļŠāđˆāļ§āļ™ limits āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ‚āļĩāļ”āļˆāļģāļāļąāļ”āļŠāļđāļ‡āļŠāļļāļ”āļ‚āļ“āļ°āļĢāļąāļ™ āļāļēāļĢāđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđ€āļāļīāļ™ limit āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ” OOMKill āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļāļēāļĢāđƒāļŠāđ‰ CPU āđ€āļāļīāļ™āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ” throttling

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē memory limits āđ‚āļ”āļĒāđ„āļĄāđˆāļĄāļĩ requests āļˆāļ°āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļ„āļēāļ”āđ€āļ”āļēāđ„āļ”āđ‰ kubelet āļ­āļēāļˆāļ§āļēāļ‡ Pod āļšāļ™āđ‚āļŦāļ™āļ”āļ—āļĩāđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĢāļ­āļ‡āļĢāļąāļš workload āđ„āļ”āđ‰āļˆāļĢāļīāļ‡ āļ„āļ§āļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāļ—āļąāđ‰āļ‡ requests āđāļĨāļ° limits āđ€āļŠāļĄāļ­āļŠāļģāļŦāļĢāļąāļš production Pods

Pod Lifecycle Phases āđāļĨāļ° Restart Policies

Kubernetes āļ•āļīāļ”āļ•āļēāļĄ Pod āđāļ•āđˆāļĨāļ°āļ•āļąāļ§āļœāđˆāļēāļ™āļŦāđ‰āļēāđ€āļŸāļŠ āđ„āļ”āđ‰āđāļāđˆ Pending, Running, Succeeded, Failed āđāļĨāļ° Unknown āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļĄāļąāļāļˆāļ°āļ–āļēāļĄāļ§āđˆāļēāļ­āļ°āđ„āļĢāļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđāļ•āđˆāļĨāļ°āļ„āļĢāļąāđ‰āļ‡

| Phase | āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒ | āļŠāļēāđ€āļŦāļ•āļļāļ—āļąāđˆāļ§āđ„āļ› | |-------|---------|-------------| | Pending | āļ–āļđāļāļˆāļąāļ”āļŠāļĢāļĢāđāļĨāđ‰āļ§āđāļ•āđˆāļĒāļąāļ‡āđ„āļĄāđˆāļĢāļąāļ™ | Image pull, āļ—āļĢāļąāļžāļĒāļēāļāļĢāđ„āļĄāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­ | | Running | āļĄāļĩāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§āļ—āļģāļ‡āļēāļ™āļ­āļĒāļđāđˆ | āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ›āļāļ•āļī | | Succeeded | āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļ­āļ­āļāļ”āđ‰āļ§āļĒāđ‚āļ„āđ‰āļ” 0 | Batch jobs, init containers | | Failed | āļĄāļĩāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļ­āļĒāđˆāļēāļ‡āļ™āđ‰āļ­āļĒāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§āļ­āļ­āļāļ”āđ‰āļ§āļĒāđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāđ„āļĄāđˆāđƒāļŠāđˆāļĻāļđāļ™āļĒāđŒ | āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļĨāđˆāļĄ, OOMKill | | Unknown | āļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļāļąāļšāđ‚āļŦāļ™āļ”āļŦāļēāļĒāđ„āļ› | Network partition, āđ‚āļŦāļ™āļ”āļĨāđ‰āļĄāđ€āļŦāļĨāļ§ |

āļŸāļīāļĨāļ”āđŒ restartPolicy āļ„āļ§āļšāļ„āļļāļĄāļ§āđˆāļēāļˆāļ°āđ€āļāļīāļ”āļ­āļ°āđ„āļĢāļ‚āļķāđ‰āļ™āļŦāļĨāļąāļ‡āļˆāļēāļāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŦāļĒāļļāļ”āļ—āļģāļ‡āļēāļ™ Always (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļŠāļģāļŦāļĢāļąāļš Deployments) āļˆāļ°āļĢāļĩāļŠāļ•āļēāļĢāđŒāļ—āđ„āļĄāđˆāļ§āđˆāļē exit code āļˆāļ°āđ€āļ›āđ‡āļ™āļ­āļ°āđ„āļĢ OnFailure āļˆāļ°āļĢāļĩāļŠāļ•āļēāļĢāđŒāļ—āđ€āļ‰āļžāļēāļ°āđ€āļĄāļ·āđˆāļ­āļ­āļ­āļāļ”āđ‰āļ§āļĒāđ‚āļ„āđ‰āļ”āļ—āļĩāđˆāđ„āļĄāđˆāđƒāļŠāđˆāļĻāļđāļ™āļĒāđŒ āļ‹āļķāđˆāļ‡āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļŠāļģāļŦāļĢāļąāļš Jobs āļŠāđˆāļ§āļ™ Never āļ›āļĨāđˆāļ­āļĒāđƒāļŦāđ‰āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļŦāļĒāļļāļ”āļ—āļģāļ‡āļēāļ™ āđƒāļŠāđ‰āļŠāļģāļŦāļĢāļąāļš debug Pods āđāļšāļšāļĢāļąāļ™āļ„āļĢāļąāđ‰āļ‡āđ€āļ”āļĩāļĒāļ§

yaml
# batch-job-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: data-migration
spec:
  restartPolicy: OnFailure   # restart only on crash
  containers:
    - name: migrate
      image: registry.example.com/migrate:1.0.0
      command: ["python", "migrate.py"]
      env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-credentials
              key: connection-string

āļĢāļđāļ›āđāļšāļš valueFrom.secretKeyRef āļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ­āđˆāļ­āļ™āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ­āļĒāļđāđˆāđƒāļ™ manifest Kubernetes Secrets āļ–āļđāļ encode āļ”āđ‰āļ§āļĒ base64 āđ‚āļ”āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āđ„āļĄāđˆāđ„āļ”āđ‰āļ–āļđāļāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ āļŠāļģāļŦāļĢāļąāļš production āļ„āļ§āļĢāđ€āļ›āļīāļ”āđƒāļŠāđ‰āļ‡āļēāļ™ encryption at rest āļœāđˆāļēāļ™ EncryptionConfiguration API āļŦāļĢāļ·āļ­āđƒāļŠāđ‰ external secret manager āđ€āļŠāđˆāļ™ HashiCorp Vault

Kubernetes Deployments: āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ Rollouts āđāļĨāļ° Scaling āđāļšāļš Declarative

Deployment āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļˆāļąāļ”āļāļēāļĢ ReplicaSets āļ‹āļķāđˆāļ‡āļˆāļ°āļˆāļąāļ”āļāļēāļĢ Pods āļ•āđˆāļ­āđ„āļ› Deployment controller āļˆāļ°āļ„āļ­āļĒāļŠāļąāļ‡āđ€āļāļ• desired state āđāļĨāļ°āļ›āļĢāļąāļšāđƒāļŦāđ‰āļ•āļĢāļ‡āļāļąāļšāļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļīāļ‡ āđ‚āļ”āļĒāđ€āļžāļīāđˆāļĄ Pods āđ€āļĄāļ·āđˆāļ­ scale up āđāļ—āļ™āļ—āļĩāđˆ Pods āļĢāļ°āļŦāļ§āđˆāļēāļ‡ rollouts āđāļĨāļ° rollback āđ€āļĄāļ·āđˆāļ­ health checks āļĨāđ‰āļĄāđ€āļŦāļĨāļ§

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Pod āđ‚āļ”āļĒāļ•āļĢāļ‡āđāļ—āļšāļˆāļ°āđ„āļĄāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđƒāļ™ production āđ€āļĨāļĒ Deployments āļˆāļąāļ”āļŦāļēāļāļēāļĢāļˆāļąāļ”āļāļēāļĢ replica, rolling updates, rollback history āđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢ pause/resume

yaml
# api-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-server
  labels:
    app: api
spec:
  replicas: 3                    # run 3 identical Pods
  revisionHistoryLimit: 5        # keep 5 old ReplicaSets for rollback
  selector:
    matchLabels:
      app: api                   # must match Pod template labels
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1          # at most 1 Pod down during update
      maxSurge: 1                # at most 1 extra Pod during update
  template:
    metadata:
      labels:
        app: api
        version: v2
    spec:
      containers:
        - name: api
          image: registry.example.com/api:3.1.0
          ports:
            - containerPort: 8080
          resources:
            requests:
              cpu: "250m"
              memory: "256Mi"
            limits:
              cpu: "500m"
              memory: "512Mi"
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10

āļŠāđˆāļ§āļ™ strategy.rollingUpdate āļāļģāļŦāļ™āļ”āļžāļĪāļ•āļīāļāļĢāļĢāļĄāļāļēāļĢ deploy āđāļšāļšāđ„āļĄāđˆāļĄāļĩ downtime āļ”āđ‰āļ§āļĒ maxUnavailable: 1 āđāļĨāļ° maxSurge: 1 Kubernetes āļˆāļ°āļŠāļĢāđ‰āļēāļ‡ Pod āđƒāļŦāļĄāđˆāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§ āļĢāļ­āđƒāļŦāđ‰āļœāđˆāļēāļ™ readiness checks āđāļĨāđ‰āļ§āļˆāļķāļ‡āļĒāļļāļ•āļī Pod āđ€āļāđˆāļēāļŦāļ™āļķāđˆāļ‡āļ•āļąāļ§ āļ§āļ‡āļˆāļĢāļ™āļĩāđ‰āļˆāļ°āļ—āļģāļ‹āđ‰āļģāļˆāļ™āļāļ§āđˆāļē replicas āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļ°āļĢāļąāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđƒāļŦāļĄāđˆ

āļāļēāļĢ Rollback Kubernetes Deployment āļ—āļĩāđˆāļĨāđ‰āļĄāđ€āļŦāļĨāļ§

Rollbacks āđ€āļ›āđ‡āļ™āļŦāļąāļ§āļ‚āđ‰āļ­āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Deployment controller āđ€āļāđ‡āļš ReplicaSets āđ€āļāđˆāļēāđ„āļ§āđ‰ (āļ„āļ§āļšāļ„āļļāļĄāđ‚āļ”āļĒ revisionHistoryLimit) āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļāļēāļĢ rollback āļˆāļķāļ‡āļ—āļģāđ„āļ”āđ‰āļ—āļąāļ™āļ—āļĩ āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡ rebuild image

bash
# Check rollout status
kubectl rollout status deployment/api-server

# View revision history
kubectl rollout history deployment/api-server

# Roll back to previous version
kubectl rollout undo deployment/api-server

# Roll back to specific revision
kubectl rollout undo deployment/api-server --to-revision=3

āļ„āļģāļŠāļąāđˆāļ‡ undo āļˆāļ°āđāļāđ‰āđ„āļ‚ Deployment spec āđƒāļŦāđ‰āļ•āļĢāļ‡āļāļąāļš Pod template āļ‚āļ­āļ‡ revision āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒ āļˆāļēāļāļ™āļąāđ‰āļ™ rolling update strategy āļˆāļ°āļ–āļđāļāļ™āļģāļĄāļēāđƒāļŠāđ‰āļ•āļēāļĄāļ›āļāļ•āļī āđ‚āļ”āļĒāļ„āđˆāļ­āļĒāđ† āđāļ—āļ™āļ—āļĩāđˆ Pods āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļ”āđ‰āļ§āļĒāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ rollback

āļžāļĢāđ‰āļ­āļĄāļ—āļĩāđˆāļˆāļ°āļžāļīāļŠāļīāļ•āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ DevOps āđāļĨāđ‰āļ§āļŦāļĢāļ·āļ­āļĒāļąāļ‡āļ„āļĢāļąāļš?

āļāļķāļāļāļ™āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āđāļšāļšāđ‚āļ•āđ‰āļ•āļ­āļš, flashcards āđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

Kubernetes Services: Networking āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāļŠāļģāļŦāļĢāļąāļš Pods āļ—āļĩāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđ„āļ”āđ‰

Pods āļĄāļĩāļĨāļąāļāļĐāļ“āļ°āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ āļžāļ§āļāļĄāļąāļ™āļˆāļ°āđ„āļ”āđ‰āļĢāļąāļš IP addresses āđƒāļŦāļĄāđˆāļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆāļĢāļĩāļŠāļ•āļēāļĢāđŒāļ— Service āđāļāđ‰āļ›āļąāļāļŦāļēāļ™āļĩāđ‰āđ‚āļ”āļĒāļˆāļąāļ”āļŦāļē virtual IP (ClusterIP) āđāļĨāļ° DNS name āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢ āļ‹āļķāđˆāļ‡āļˆāļ°āđ€āļŠāđ‰āļ™āļ—āļēāļ‡ traffic āđ„āļ›āļĒāļąāļ‡ Pods āļ—āļĩāđˆāļĄāļĩāļŠāļļāļ‚āļ āļēāļžāļ”āļĩāļ—āļĩāđˆāļ•āļĢāļ‡āļāļąāļš label selector

āļ„āļ­āļĄāđ‚āļžāđ€āļ™āļ™āļ•āđŒ kube-proxy āļšāļ™āđāļ•āđˆāļĨāļ°āđ‚āļŦāļ™āļ”āļˆāļ°āļ•āļąāđ‰āļ‡āļ„āđˆāļē iptables āļŦāļĢāļ·āļ­ IPVS rules āđ€āļžāļ·āđˆāļ­āļāļĢāļ°āļˆāļēāļĒ traffic āđ„āļ›āļĒāļąāļ‡ backend Pods āđ€āļĄāļ·āđˆāļ­ Pod āļĨāđ‰āļĄāđ€āļŦāļĨāļ§āđƒāļ™ readiness probe Endpoints controller āļˆāļ°āļĨāļšāļĄāļąāļ™āļ­āļ­āļāļˆāļēāļ Service āļ—āļģāđƒāļŦāđ‰āđ„āļĄāđˆāļĄāļĩ traffic āđ„āļ›āļ–āļķāļ‡ instances āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāļŠāļļāļ‚āļ āļēāļžāļ”āļĩ

yaml
# api-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: api-service
spec:
  type: ClusterIP               # internal-only by default
  selector:
    app: api                     # routes to Pods with this label
  ports:
    - name: http
      port: 80                   # Service port (what clients use)
      targetPort: 8080           # Pod port (where container listens)
      protocol: TCP

āđ€āļĄāļ·āđˆāļ­āļŠāļĢāđ‰āļēāļ‡āđāļĨāđ‰āļ§ Pod āđƒāļ”āđ† āđƒāļ™ cluster āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āđ‰āļēāļ–āļķāļ‡ Service āļ™āļĩāđ‰āđ„āļ”āđ‰āļ—āļĩāđˆ api-service.default.svc.cluster.local (āļŦāļĢāļ·āļ­āđāļ„āđˆ api-service āļ āļēāļĒāđƒāļ™ namespace āđ€āļ”āļĩāļĒāļ§āļāļąāļ™) CoreDNS āļˆāļ°āļˆāļąāļ”āļāļēāļĢāļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ·āđˆāļ­

āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡ Service: ClusterIP, NodePort āđāļĨāļ° LoadBalancer

āļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļēāļ”āļŦāļ§āļąāļ‡āđƒāļŦāđ‰āļœāļđāđ‰āļŠāļĄāļąāļ„āļĢāļ­āļ˜āļīāļšāļēāļĒ Service types āļŦāļĨāļąāļāļŠāļēāļĄāļ›āļĢāļ°āđ€āļ āļ—āđāļĨāļ°āđ€āļĄāļ·āđˆāļ­āđƒāļ”āļ„āļ§āļĢāđƒāļŠāđ‰āđāļ•āđˆāļĨāļ°āļ›āļĢāļ°āđ€āļ āļ—

| Type | Access Scope | āļāļĢāļ“āļĩāļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ | |------|-------------|----------| | ClusterIP | āļ āļēāļĒāđƒāļ™ cluster āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ | Backend APIs, databases, caches | | NodePort | External āļœāđˆāļēāļ™ <NodeIP>:<Port> | Development, bare-metal clusters | | LoadBalancer | External āļœāđˆāļēāļ™ cloud LB | Production traffic āļšāļ™ AWS/GCP/Azure |

yaml
# api-loadbalancer.yaml
apiVersion: v1
kind: Service
metadata:
  name: api-public
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"  # AWS NLB
spec:
  type: LoadBalancer
  selector:
    app: api
  ports:
    - name: https
      port: 443
      targetPort: 8080
      protocol: TCP

āļ›āļĢāļ°āđ€āļ āļ— LoadBalancer āļˆāļ°āļāļĢāļ°āļ•āļļāđ‰āļ™āđƒāļŦāđ‰ load balancer controller āļ‚āļ­āļ‡ cloud provider āļˆāļąāļ”āļŦāļē external endpoint āļšāļ™ AWS āļˆāļ°āļŠāļĢāđ‰āļēāļ‡ NLB āļŦāļĢāļ·āļ­ ALB āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš annotations āļšāļ™ bare-metal clusters āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩ cloud integration MetalLB āļŦāļĢāļ·āļ­ kube-vip āļˆāļ°āļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāļ™āļĩāđ‰

Gateway API āļāļģāļĨāļąāļ‡āđāļ—āļ™āļ—āļĩāđˆ Ingress

āļ“ Kubernetes v1.35 Ingress NGINX controller āđ„āļ”āđ‰āļ–āļđāļāļĒāļāđ€āļĨāļīāļāļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ—āļēāļ‡āļāļēāļĢāđāļĨāđ‰āļ§ Gateway API āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļāļēāļĢāļ—āļĩāđˆāđāļ™āļ°āļ™āļģāļŠāļģāļŦāļĢāļąāļš HTTP routing, TLS termination āđāļĨāļ° traffic splitting Clusters āđƒāļŦāļĄāđˆāļ„āļ§āļĢāđƒāļŠāđ‰ Gateway API āļ•āļąāđ‰āļ‡āđāļ•āđˆāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™

āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­ Deployments āļāļąāļš Services āļ”āđ‰āļ§āļĒ Label Selectors

āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ Deployment āđāļĨāļ° Service āļ„āļ·āļ­ label selector āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡āđ‚āļ”āļĒāļ•āļĢāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļŠāļ­āļ‡āļ­āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒ Service āļˆāļ°āļ„āļ­āļĒāļ”āļđ Pods āļ—āļĩāđˆāļĄāļĩ labels āļ•āļĢāļ‡āļāļąāļš spec.selector āđāļĨāļ°āļ”āļđāđāļĨāļĢāļąāļāļĐāļēāļĢāļēāļĒāļāļēāļĢ Endpoints āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī

āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđāļšāļšāđāļĒāļāļŠāđˆāļ§āļ™āļ™āļĩāđ‰āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļē Service āđ€āļ”āļĩāļĒāļ§āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āđ€āļŠāđ‰āļ™āļ—āļēāļ‡āđ„āļ›āļĒāļąāļ‡ Pods āļˆāļēāļāļŦāļĨāļēāļĒ Deployments āđ„āļ”āđ‰ (āļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļŠāļģāļŦāļĢāļąāļš canary releases) āđāļĨāļ° Deployment āļŠāļēāļĄāļēāļĢāļ–āļ–āļđāļāđ€āļ›āļīāļ”āđ€āļœāļĒāđ‚āļ”āļĒāļŦāļĨāļēāļĒ Services (āļžāļ­āļĢāđŒāļ•āļ•āđˆāļēāļ‡āļāļąāļ™ āļĢāļ°āļ”āļąāļšāļāļēāļĢāđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ•āđˆāļēāļ‡āļāļąāļ™)

yaml
# canary-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-server-canary
spec:
  replicas: 1
  selector:
    matchLabels:
      app: api                   # same label as main Deployment
  template:
    metadata:
      labels:
        app: api                 # Service picks this up automatically
        version: v3-canary
    spec:
      containers:
        - name: api
          image: registry.example.com/api:3.2.0-rc1
          ports:
            - containerPort: 8080

āļ”āđ‰āļ§āļĒ Deployment āļŦāļĨāļąāļāļ—āļĩāđˆāļĢāļąāļ™ 3 replicas āđāļĨāļ° canary āļ—āļĩāđˆāļĢāļąāļ™ 1 Service āļˆāļ°āļāļĢāļ°āļˆāļēāļĒāļ›āļĢāļ°āļĄāļēāļ“ 25% āļ‚āļ­āļ‡ traffic āđ„āļ›āļĒāļąāļ‡ canary āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē Service label matching āļˆāļąāļ”āļāļēāļĢāļ—āļļāļāļ­āļĒāđˆāļēāļ‡

Horizontal Pod Autoscaling āļŠāļģāļŦāļĢāļąāļš Kubernetes Deployments

āļˆāļģāļ™āļ§āļ™ replica āđāļšāļšāļ„āļ‡āļ—āļĩāđˆāļˆāļ°āļŠāļīāđ‰āļ™āđ€āļ›āļĨāļ·āļ­āļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢāđƒāļ™āļŠāđˆāļ§āļ‡ traffic āļ•āđˆāļģāđāļĨāļ°āđ„āļĄāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­āđƒāļ™āļŠāđˆāļ§āļ‡ traffic āļžāļļāđˆāļ‡ HorizontalPodAutoscaler (HPA) āļˆāļ°āļ›āļĢāļąāļšāļˆāļģāļ™āļ§āļ™ replica āļ•āļēāļĄ metrics āļ—āļĩāđˆāļŠāļąāļ‡āđ€āļāļ•āđ„āļ”āđ‰

yaml
# api-hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: api-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: api-server
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70   # scale up above 70% CPU
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 80
  behavior:
    scaleDown:
      stabilizationWindowSeconds: 300  # wait 5 min before scaling down

HPA āļˆāļ°āļŠāļģāļĢāļ§āļˆ metrics server āļ—āļļāļ 15 āļ§āļīāļ™āļēāļ—āļĩāđ‚āļ”āļĒāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ behavior.scaleDown.stabilizationWindowSeconds āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļāļĢāļ°āļžāļ·āļ­ āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āļ§āļ‡āļˆāļĢ scale-up/scale-down āļ—āļĩāđˆāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđ€āļĢāđ‡āļ§āđ€āļāļīāļ™āđ„āļ›āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļ traffic patterns āđāļšāļšāļĄāļĩāļžāļąāļ

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Kubernetes āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāđāļĨāļ°āļ„āļģāļ•āļ­āļš

āļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ›āļĢāļēāļāļāļ‹āđ‰āļģāđ† āđƒāļ™āļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ•āļģāđāļŦāļ™āđˆāļ‡ DevOps āđāļĨāļ° Platform Engineering āļ„āļģāļ•āļ­āļšāđāļ•āđˆāļĨāļ°āļ‚āđ‰āļ­āļĄāļļāđˆāļ‡āđ€āļ›āđ‰āļēāđ„āļ›āļ—āļĩāđˆāļ„āļ§āļēāļĄāļĨāļķāļāļ—āļĩāđˆāļœāļđāđ‰āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļēāļ”āļŦāļ§āļąāļ‡

āđ€āļāļīāļ”āļ­āļ°āđ„āļĢāļ‚āļķāđ‰āļ™āđ€āļĄāļ·āđˆāļ­ Pod āđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđ€āļāļīāļ™ memory limit kubelet āļˆāļ°āļŠāđˆāļ‡ SIGKILL āļœāđˆāļēāļ™ OOM killer āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļˆāļ°āļ­āļ­āļāļ”āđ‰āļ§āļĒāđ‚āļ„āđ‰āļ” 137 Deployment controller āļˆāļ°āļ•āļĢāļ§āļˆāļˆāļąāļš Pod āļ—āļĩāđˆāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļ•āļąāļ§āļ—āļ”āđāļ—āļ™ āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļš restart policy āđāļĨāļ° backoff delays

Kubernetes āļāļģāļŦāļ™āļ”āđ€āļŠāđ‰āļ™āļ—āļēāļ‡ traffic āđ„āļ›āļĒāļąāļ‡ Pod āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļ‰āļžāļēāļ°āļĢāļ°āļŦāļ§āđˆāļēāļ‡ canary releases āļ­āļĒāđˆāļēāļ‡āđ„āļĢ Service selector āļˆāļ°āļˆāļąāļšāļ„āļđāđˆāļāļąāļš labels āļ—āļĩāđˆāđāļŠāļĢāđŒāļāļąāļ™ (āđ€āļŠāđˆāļ™ app: api) āļ—āļąāđ‰āļ‡ stable āđāļĨāļ° canary Deployments āđƒāļŠāđ‰ label āļ™āļĩāđ‰ āļāļēāļĢāļāļĢāļ°āļˆāļēāļĒ traffic āļˆāļ°āļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļāļąāļšāļˆāļģāļ™āļ§āļ™ ready endpoints āļ‹āļķāđˆāļ‡ 3 stable replicas + 1 canary replica āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āđˆāļēāļ›āļĢāļ°āļĄāļēāļ“ 25% canary traffic āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđāļšāđˆāļ‡ traffic āļ—āļĩāđˆāđāļĄāđˆāļ™āļĒāļģ (āđ€āļŠāđˆāļ™ 5%) āđƒāļŦāđ‰āđƒāļŠāđ‰ Gateway API HTTPRoute āļāļąāļš weighted backends

readinessProbe āđāļĨāļ° livenessProbe āļ•āđˆāļēāļ‡āļāļąāļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ readiness probe āļ„āļ§āļšāļ„āļļāļĄāļ§āđˆāļē Pod āļˆāļ°āļĢāļąāļš traffic āļˆāļēāļ Service āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āļāļēāļĢāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ‚āļ­āļ‡ readiness probe āļˆāļ°āļĨāļš Pod āļ­āļ­āļāļˆāļēāļāļĢāļēāļĒāļāļēāļĢ Endpoints āđāļ•āđˆāđ„āļĄāđˆāļĢāļĩāļŠāļ•āļēāļĢāđŒāļ— liveness probe āļ„āļ§āļšāļ„āļļāļĄāļ§āđˆāļēāļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒāļˆāļ°āļ–āļđāļāļĢāļĩāļŠāļ•āļēāļĢāđŒāļ—āļŦāļĢāļ·āļ­āđ„āļĄāđˆ āļāļēāļĢāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ‚āļ­āļ‡ liveness probe āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļāļēāļĢāļĢāļĩāļŠāļ•āļēāļĢāđŒāļ—āļ„āļ­āļ™āđ€āļ—āļ™āđ€āļ™āļ­āļĢāđŒ āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰ HTTP, TCP āļŦāļĢāļ·āļ­ exec checks

rolling updates āļĢāļąāļšāļ›āļĢāļ°āļāļąāļ™āļ§āđˆāļēāļˆāļ°āđ„āļĄāđˆāļĄāļĩ downtime āļ­āļĒāđˆāļēāļ‡āđ„āļĢ Deployment controller āļˆāļ°āļŠāļĢāđ‰āļēāļ‡ Pods āđƒāļŦāļĄāđˆāļāđˆāļ­āļ™āļĒāļļāļ•āļī Pods āđ€āļāđˆāļē āļ„āļ§āļšāļ„āļļāļĄāđ‚āļ”āļĒ maxSurge āđāļĨāļ° maxUnavailable Pods āđƒāļŦāļĄāđˆāļ•āđ‰āļ­āļ‡āļœāđˆāļēāļ™ readiness probes āļāđˆāļ­āļ™āļ—āļĩāđˆ Pods āđ€āļāđˆāļēāļˆāļ°āļ–āļđāļ drained terminationGracePeriodSeconds (āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™: 30s) āđƒāļŦāđ‰āđ€āļ§āļĨāļē in-flight requests āđ€āļŠāļĢāđ‡āļˆāļŠāļīāđ‰āļ™āļāđˆāļ­āļ™ SIGKILL

āļāļēāļĢāđ€āļ•āļĢāļĩāļĒāļĄāļ•āļąāļ§āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Kubernetes āļ•āđ‰āļ­āļ‡āļāļēāļĢāļāļēāļĢāļāļķāļāļ›āļāļīāļšāļąāļ•āļī YAML āļˆāļĢāļīāļ‡āđ† āđ„āļĄāđˆāđƒāļŠāđˆāđāļ„āđˆāļ—āļĪāļĐāļŽāļĩ āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ DevOps āļšāļ™ SharpSkill āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļŦāļąāļ§āļ‚āđ‰āļ­āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļ”āđ‰āļ§āļĒāđāļšāļšāļāļķāļāļŦāļąāļ”āđāļšāļšāđ‚āļ•āđ‰āļ•āļ­āļš

āđ€āļĢāļīāđˆāļĄāļāļķāļāļ‹āđ‰āļ­āļĄāđ€āļĨāļĒ!

āļ—āļ”āļŠāļ­āļšāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ‚āļ­āļ‡āļ„āļļāļ“āļ”āđ‰āļ§āļĒāļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒāđāļĨāļ°āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„āļ„āļĢāļąāļš

āļŠāļĢāļļāļ›

  • Pods āļ„āļ·āļ­āļŦāļ™āđˆāļ§āļĒāļāļēāļĢāļˆāļąāļ”āļŠāļĢāļĢ āļ„āļ§āļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē requests āđāļĨāļ° limits āļ‚āļ­āļ‡āļ—āļĢāļąāļžāļĒāļēāļāļĢāđ€āļŠāļĄāļ­ āđāļĨāļ°āļāļģāļŦāļ™āļ”āļ„āđˆāļēāļ—āļąāđ‰āļ‡ readiness āđāļĨāļ° liveness probes
  • Deployments āļˆāļąāļ”āļāļēāļĢāļˆāļģāļ™āļ§āļ™ replica, rolling updates āđāļĨāļ° rollback history āļœāđˆāļēāļ™ ReplicaSets āđ„āļĄāđˆāļ„āļ§āļĢāļŠāļĢāđ‰āļēāļ‡ bare Pods āđƒāļ™ production
  • Services āļˆāļąāļ”āļŦāļē networking āļ—āļĩāđˆāļĄāļĩāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāļœāđˆāļēāļ™ label selectors āđāļĨāļ° virtual IPs āđƒāļŠāđ‰ ClusterIP āļŠāļģāļŦāļĢāļąāļš internal traffic āđāļĨāļ° LoadBalancer āļŠāļģāļŦāļĢāļąāļš external
  • āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ Deployments āđāļĨāļ° Services āļ­āļīāļ‡āļ•āļēāļĄ label āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ—āļģ canary patterns āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē
  • HPA āļˆāļ° scale Deployments āļ•āļēāļĄ CPU/memory metrics āļ„āļ§āļĢāđƒāļŠāđ‰ stabilizationWindowSeconds āđ€āļžāļ·āđˆāļ­āļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāļāļĢāļ°āļžāļ·āļ­
  • Gateway API āđāļ—āļ™āļ—āļĩāđˆ Ingress NGINX āļ“ Kubernetes v1.35 āđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāđƒāļŦāļĄāđˆāļ„āļ§āļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļ•āļąāđ‰āļ‡āđāļ•āđˆāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™
  • āļāļķāļāļ›āļāļīāļšāļąāļ•āļīāļāļąāļš YAML manifests āļˆāļĢāļīāļ‡āđāļĨāļ°āļ„āļģāļŠāļąāđˆāļ‡ kubectl āđāļ—āļ™āļāļēāļĢāļ—āđˆāļ­āļ‡āļˆāļģāļ„āļģāļˆāļģāļāļąāļ”āļ„āļ§āļēāļĄ

āđāļ—āđ‡āļ

#kubernetes
#devops
#interview
#pods
#services
#deployments

āđāļŠāļĢāđŒ

āļšāļ—āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ DevOps āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™

āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ DevOps āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™: āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒ 2026

āđ€āļ•āļĢāļĩāļĒāļĄāļ•āļąāļ§āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ DevOps āļ”āđ‰āļ§āļĒāļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļĢāļđāđ‰āđ€āļāļĩāđˆāļĒāļ§āļāļąāļš CI/CD, Kubernetes, Docker, Terraform āđāļĨāļ°āđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļī SRE āļžāļĢāđ‰āļ­āļĄāļ„āļģāļ•āļ­āļšāļĨāļ°āđ€āļ­āļĩāļĒāļ”

āđāļœāļ™āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ ArgoCD āđāļĨāļ° GitOps āļšāļ™ Kubernetes

ArgoCD āđāļĨāļ° GitOps āļŠāļģāļŦāļĢāļąāļš Kubernetes: āļ„āļđāđˆāļĄāļ·āļ­āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒāđāļĨāļ°āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™ 2026

āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™ ArgoCD āļŠāļģāļŦāļĢāļąāļš GitOps āļšāļ™ Kubernetes āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ•āļąāđ‰āļ‡āđāļ•āđˆāļžāļ·āđ‰āļ™āļāļēāļ™āđ„āļ›āļˆāļ™āļ–āļķāļ‡āđ€āļ—āļ„āļ™āļīāļ„āļ‚āļąāđ‰āļ™āļŠāļđāļ‡ āļžāļĢāđ‰āļ­āļĄāļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ‡āļēāļ™āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāđƒāļ™āļ›āļĩ 2026

āļ„āļđāđˆāļĄāļ·āļ­ Kubernetes āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļĩāļžāļĨāļ­āļĒāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļĢāļ

Kubernetes: āļ”āļĩāļžāļĨāļ­āļĒāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđāļĢāļ

āļ„āļđāđˆāļĄāļ·āļ­āđ€āļŠāļīāļ‡āļ›āļāļīāļšāļąāļ•āļīāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ”āļĩāļžāļĨāļ­āļĒāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļšāļ™ Kubernetes āļ•āļąāđ‰āļ‡āđāļ•āđˆāļāļēāļĢāļ•āļīāļ”āļ•āļąāđ‰āļ‡ minikube āđ„āļ›āļˆāļ™āļ–āļķāļ‡ Deployments, Services āđāļĨāļ° ConfigMaps āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļĢāļđāļ›āļ˜āļĢāļĢāļĄ