☸️
Deployment & DevOps

Kubernetes Readiness

ConfigMaps, Secrets, Graceful Shutdown
💡 Kubernetes-ready application banaна, EK STAFF MEMBER ko TRAIN karne jaisa hai — SIRF "KAAM KARNA" (business logic) SEEKH lena KAAFI NAHI, "SHIFT KHATAM hone PAR PROPERLY HANDOVER karna" (graceful shutdown), aur "MANAGER se INSTRUCTIONS LENA" (ConfigMaps/Secrets se config), YE SAB bhi CRITICAL SKILLS hain.

Kubernetes mein DEPLOY karne ke liye, Spring Boot APPLICATION ko KAAI THINGS "AWARE" hona CHAHIYE — CONFIGURATION, ConfigMaps (non-sensitive) aur Secrets (sensitive) se, ENVIRONMENT VARIABLES ke roop mein AATI hai. HEALTH CHECKS (/actuator/health/liveness, /readiness), Kubernetes ko BATATE hain APPLICATION ki STATE.

GRACEFUL SHUTDOWN EQUALLY IMPORTANT hai — JAB Kubernetes EK POD ko TERMINATE karta hai (DEPLOYMENT/SCALING/ROLLING UPDATE ke DAURAN), APPLICATION ko IN-FLIGHT REQUESTS COMPLETE karne ka MAUKA MILNA CHAHIYE, NAYE REQUESTS ACCEPT kiye BINA — WARNA, USERS ko ERRORS DIKH sakte hain.

# application.properties:
server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=30s

# Kubernetes deployment.yaml:
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      containers:
        - name: myapp
          image: myapp:latest
          envFrom:
            - configMapRef: { name: app-config }
            - secretRef: { name: db-secret }
          livenessProbe:
            httpGet: { path: /actuator/health/liveness, port: 8080 }
          readinessProbe:
            httpGet: { path: /actuator/health/readiness, port: 8080 }
☸️
Kubernetes-ready application banaна, EK STAFF MEMBER ko TRAIN karne jaisa hai — SIRF "KAAM KARNA" (business logic) SEEKH lena KAAFI NAHI, "SHIFT KHATAM hone PAR PROPERLY HANDOVER karna" (graceful shutdown), aur "MANAGER se INSTRUCTIONS LENA" (ConfigMaps/Secrets se config), YE SAB bhi CRITICAL SKILLS hain.
1 / 6
⚡ झट से Recap
  • ConfigMaps (non-sensitive) + Secrets (sensitive) = environment variables ke roop mein config
  • Liveness/readiness probes (Actuator) = Kubernetes ko APPLICATION state BATATE hain
  • Graceful shutdown = in-flight requests COMPLETE, naye requests REJECT — ZERO-DOWNTIME deploys ke liye
इस page में (2 subtopics)

Kubernetes mein, NON-SENSITIVE configuration ConfigMaps mein, aur SENSITIVE data (passwords) Secrets mein STORE hoती hai — DONO, ENVIRONMENT VARIABLES ke roop mein, POD ke ANDAR APPLICATION ko AVAILABLE karaए jaate hain.

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  SPRING_PROFILES_ACTIVE: "prod"
---
apiVersion: v1
kind: Secret
metadata:
  name: db-secret
stringData:
  SPRING_DATASOURCE_PASSWORD: "supersecret"

server.shutdown=graceful PROPERTY se, Spring Boot, SHUTDOWN SIGNAL milne par, IN-FLIGHT REQUESTS ko COMPLETE hone deta hai (EK TIMEOUT tak), NAYE REQUESTS ACCEPT karna BAND kar deta hai — Kubernetes DEPLOYMENTS/ROLLING UPDATES ke DAURAN, USER-FACING ERRORS AVOID karne ke liye CRITICAL.

server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=30s