Claude Code से Kubernetes Deployment: Service, Ingress और rollback
Claude Code की मदद से सुरक्षित Kubernetes YAML, probes, resources, CI review और rollback workflow बनाना सीखें।
सिर्फ YAML नहीं, review करने योग्य deployment बनाएं
Kubernetes container apps को cluster में चलाने का तरीका देता है, लेकिन शुरुआत में सबसे कठिन चीज concepts की संख्या है: Deployment, Service, Ingress, ConfigMap, Secret, probes, requests, limits, rollout और rollback. अगर आप Claude Code से केवल “Kubernetes YAML बना दो” कहेंगे, तो वह ऐसा manifest दे सकता है जो दिखने में ठीक हो, पर उसमें latest image, missing readinessProbe, Git में जाने वाला Secret example, या गलत Service type हो सकता है।
इस guide में Claude Code को automatic deploy button नहीं माना गया है। इसे safe scaffold और review helper की तरह उपयोग किया गया है। Example nginx:1.27-alpine और ConfigMap वाली HTML page का उपयोग करता है, इसलिए private image registry की जरूरत नहीं है। आप इसे kind, minikube, Docker Desktop Kubernetes या test cluster में चला सकते हैं।
Real project में बदलते समय official docs साथ रखें: Deployments, Services, Ingress, probes, resource management, ConfigMap, Secret और kubectl rollout. Related reading के लिए Docker integration, CI/CD setup, code review और permissions guide देखें।
असली use cases
शुरुआत बड़े production platform से न करें। पहले एक छोटी unit बनाएं जिसे deploy, verify, intentionally break और rollback किया जा सके।
| Use case | लक्ष्य | Claude Code से क्या बनवाएं |
|---|---|---|
| पहला internal tool | Web app को stable Service के पीछे चलाना | Deployment, ClusterIP Service, probes, requests और limits |
| Training cluster | सभी learners same commands चलाएं | namespace वाला manifest, verification commands, failure exercise |
| Production से पहले review | risky YAML पकड़ना | selector, Secret, probe, Ingress और rollback checks |
| Pull Request gate | infrastructure mistake merge से पहले रोकना | dry-run CI और review checklist |
यह topic monetization के लिए भी उपयोगी है, क्योंकि reader definition नहीं, real production mistake से बचने का तरीका ढूंढ रहा है। ClaudeCodeLab इस guide को free resources, templates और Claude Code training और consultation से जोड़ता है।
Claude Code को boundaries दें
Kubernetes prompt में यह भी लिखें कि क्या नहीं बनाना है। वरना model LoadBalancer चुन सकता है, fake Secret लिख सकता है, cluster-wide RBAC बना सकता है या गलत Ingress Controller assume कर सकता है।
Local में test होने वाला beginner-friendly Kubernetes deployment example बनाएं।
Requirements:
- namespace claude-k8s-demo
- nginx:1.27-alpine use करें, private image नहीं
- ConfigMap से एक HTML page दें
- Deployment में replicas 2, RollingUpdate, readinessProbe, livenessProbe और resources हों
- Service type ClusterIP हो
- Ingress optional हो, host claude-k8s.local
- Secret policy समझाएं, real Secret values generate न करें
- apply, rollout status, port-forward, failure और rollback commands दें
Constraints:
- NodePort या LoadBalancer न use करें
- real Secret values YAML में न लिखें
- ClusterRole, ClusterRoleBinding या destructive cleanup commands न बनाएं
इस prompt से review clear हो जाता है: labels, selectors, ports, probes, resources और secrets. अगर team इसे बार-बार करती है, तो stable rules CLAUDE.md में डालें; CLAUDE.md best practices उपयोगी है।
Copy-paste manifest
इसे k8s/claude-k8s-demo.yaml के रूप में रखें। Ingress controller न भी हो, Service को port-forward से verify किया जा सकता है।
apiVersion: v1
kind: Namespace
metadata:
name: claude-k8s-demo
---
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-page
namespace: claude-k8s-demo
data:
APP_ENV: "demo"
index.html: |
<!doctype html>
<html lang="hi">
<head><meta charset="utf-8" /><title>Claude Code Kubernetes Demo</title></head>
<body><h1>Claude Code Kubernetes Demo</h1><p>Deployment, Service, ConfigMap, probes are running.</p></body>
</html>
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-web
namespace: claude-k8s-demo
labels:
app: demo-web
spec:
replicas: 2
selector:
matchLabels:
app: demo-web
template:
metadata:
labels:
app: demo-web
spec:
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- name: http
containerPort: 80
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "250m"
memory: "128Mi"
readinessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 3
periodSeconds: 5
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 10
periodSeconds: 10
volumeMounts:
- name: demo-page
mountPath: /usr/share/nginx/html/index.html
subPath: index.html
readOnly: true
volumes:
- name: demo-page
configMap:
name: demo-page
---
apiVersion: v1
kind: Service
metadata:
name: demo-web
namespace: claude-k8s-demo
spec:
type: ClusterIP
selector:
app: demo-web
ports:
- name: http
port: 80
targetPort: http
Beginner mistake अक्सर selector.matchLabels, Pod labels और Service selector mismatch होता है। Claude Code से इन तीनों को साथ में check करवाएं।
Local verification
पहले kubectl cluster-info से cluster confirm करें।
kubectl apply -f k8s/claude-k8s-demo.yaml
kubectl -n claude-k8s-demo rollout status deployment/demo-web
kubectl -n claude-k8s-demo get pods -l app=demo-web
kubectl -n claude-k8s-demo get service demo-web
kubectl -n claude-k8s-demo port-forward service/demo-web 8080:80
दूसरे terminal में:
curl http://localhost:8080/
Ingress हो तो उसे बाद में check करें। Pod और Service काम नहीं कर रहे, तो Ingress fix नहीं करेगा।
kubectl -n claude-k8s-demo get ingress demo-web
kubectl -n claude-k8s-demo describe ingress demo-web
ConfigMap, Secret और rollback
ConfigMap non-sensitive configuration के लिए है। Password, API token, session key या signing secret उसमें न रखें। Secret sensitive values के लिए resource है, लेकिन base64 encryption नहीं है। Production में cloud Secret Manager, External Secrets, Sealed Secrets, SOPS या team-approved vault process use करें।
Local practice के लिए:
kubectl -n claude-k8s-demo create secret generic demo-api-secret \
--from-literal=API_TOKEN='replace-me-locally' \
--dry-run=client \
-o yaml > secret.local.yaml
kubectl apply -f secret.local.yaml
Rollout और rollback भी practice करें:
kubectl -n claude-k8s-demo set image deployment/demo-web nginx=nginx:1.27-alpine
kubectl -n claude-k8s-demo rollout status deployment/demo-web
kubectl -n claude-k8s-demo rollout history deployment/demo-web
kubectl -n claude-k8s-demo set image deployment/demo-web nginx=nginx:not-a-real-tag
kubectl -n claude-k8s-demo rollout status deployment/demo-web --timeout=30s
kubectl -n claude-k8s-demo rollout undo deployment/demo-web
Deployment rollback ConfigMap, Secret, database migration, DNS या feature flags को अपने आप वापस नहीं करता। Runbook में यह साफ लिखें।
CI review और result
Pull Request में कम से कम dry-run रखें:
name: Kubernetes manifest review
on:
pull_request:
paths:
- "k8s/**"
jobs:
dry-run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/setup-kubectl@v4
with:
version: "v1.30.0"
- run: kubectl apply --dry-run=client -f k8s/
Common failures हैं: production में latest, readiness और liveness को same मानना, resources छोड़ना, base64 को security समझना, Service check से पहले Ingress debug करना, और Claude Code output को बिना human review deploy करना। इस guide का verified flow है apply, rollout status, Pods, port-forward, curl, invalid image, visible failure, rollout undo. Team adoption के लिए Claude Code training और consultation में prompts, CLAUDE.md, CI gates और rollback practice को real repository के हिसाब से सेट किया जा सकता है।
मुफ़्त PDF: Claude Code cheatsheet
Email डालें और commands, review habits तथा safe workflow वाली एक-page PDF पाएँ.
हम आपका data सुरक्षित रखते हैं और spam नहीं भेजते.
लेखक के बारे में
Masa
Claude Code workflow और team adoption पर काम करने वाला engineer.
संबंधित लेख
Claude Code Obsidian to CLAUDE.md workflow: context बार-बार न समझाएं
Obsidian notes को CLAUDE.md operating notes में बदलकर Claude Code sessions को resume करना आसान बनाएं.
Claude Code Revenue CTA Routing: article से PDF, Gumroad और consultation तक
Reader intent के आधार पर free PDF, Gumroad products और consultation तक CTA route करने वाला workflow.
Claude Code टीम हैंडऑफ नियम: review proof, permissions, rollback और revenue path
Claude Code टीम काम के लिए evidence, permission rules, rollback, free PDF, Gumroad और consultation path वाला handoff.