Kubernetes ist der De-facto-Standard für Container-Orchestrierung — doch die YAML-Manifeste, Helm-Charts und kubectl-Befehle schrecken viele Entwickler ab. Claude Code ändert das: Statt stundenlange Doku zu lesen, beschreibst du deine Infrastruktur auf Deutsch, und Claude Code generiert produktionsreife K8s-Manifeste in Sekunden.
💡
Was du lernst: Kubernetes-Grundkonzepte, kubectl-Befehle, vollständige YAML-Manifeste, Helm Charts, ConfigMaps & Secrets sowie Horizontal Pod Autoscaler — alles erklärt mit Claude Code als Begleiter.
Kubernetes Grundkonzepte
Kubernetes gruppiert Container in logische Einheiten. Diese vier Bausteine musst du kennen:
Pod
Pod
Kleinste deploybare Einheit. Enthält einen oder mehrere Container, die sich Netzwerk und Storage teilen.
Deployment
Deployment
Verwaltet Pods deklarativ: gewünschte Anzahl Replicas, Rolling Updates, Rollback bei Fehler.
Service
Service
Stabiler DNS-Name und Load-Balancer vor Pods. ClusterIP, NodePort oder LoadBalancer je nach Bedarf.
Ingress
Ingress
HTTP/HTTPS Routing: Hostnamen und Pfade auf Services mappen, TLS terminieren.
Claude Code Prompt für K8s-Erklärungen
Du musst Kubernetes nicht selbst verstehen — frag Claude Code direkt:
Claude Code Terminal
# Konzept erklären lassen
>
claude "Erkläre mir den Unterschied zwischen Pod, Deployment
und ReplicaSet in Kubernetes — mit einer einfachen Analogie"
# Manifest generieren
>
claude "Erstelle ein Kubernetes Deployment für meine Node.js App
mit Image node:20-alpine, Port 3000, 3 Replicas und
einem Liveness-Probe auf /health"
kubectl Basics: Die wichtigsten Befehle
kubectl ist die Kommandozeile für Kubernetes. Claude Code kann dir jeden Befehl erklären und passend für dein Szenario zusammenbauen.
| Befehl | Beschreibung |
kubectl get pods -A | Alle Pods in allen Namespaces anzeigen |
kubectl describe pod <name> | Details + Events eines Pods |
kubectl logs -f <pod> | Live-Logs eines Pods streamen |
kubectl apply -f manifest.yaml | Manifest anwenden / aktualisieren |
kubectl delete -f manifest.yaml | Ressourcen aus Manifest löschen |
kubectl exec -it <pod> -- bash | Shell in laufendem Container öffnen |
kubectl rollout status deploy/<name> | Rollout-Status überwachen |
kubectl rollout undo deploy/<name> | Auf vorherige Version zurückrollen |
kubectl scale deploy/<name> --replicas=5 | Manuell skalieren |
kubectl port-forward svc/<name> 8080:80 | Service lokal erreichbar machen |
🤖
Claude Code Trick: claude "Ich bekomme CrashLoopBackOff auf meinem Pod. Welche kubectl-Befehle helfen beim Debugging?" — Claude Code gibt dir eine priorisierte Checkliste.
Vollständiges YAML-Manifest: Deployment + Service + Ingress
Das folgende Manifest deployt eine Node.js-API mit drei Replicas, einem ClusterIP-Service und Ingress mit TLS. Claude Code generiert genau diese Art von produktionsreifen Manifesten:
k8s/app-manifest.yaml
---
# ============================================================
# DEPLOYMENT
# ============================================================
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodeapp
namespace: production
labels:
app: nodeapp
version:
"2.1.0"
spec:
replicas: 3
selector:
matchLabels:
app: nodeapp
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: nodeapp
spec:
containers:
-
name: nodeapp
image:
myregistry/nodeapp:2.1.0
ports:
-
containerPort: 3000
envFrom:
-
configMapRef:
name: nodeapp-config
-
secretRef:
name: nodeapp-secrets
resources:
requests:
cpu:
"100m"
memory:
"128Mi"
limits:
cpu:
"500m"
memory:
"512Mi"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 15
periodSeconds: 20
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 10
---
# ============================================================
# SERVICE
# ============================================================
apiVersion: v1
kind: Service
metadata:
name: nodeapp-svc
namespace: production
spec:
selector:
app: nodeapp
ports:
-
protocol: TCP
port: 80
targetPort: 3000
type: ClusterIP
---
# ============================================================
# INGRESS
# ============================================================
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nodeapp-ingress
namespace: production
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
cert-manager.io/cluster-issuer:
"letsencrypt-prod"
spec:
ingressClassName: nginx
tls:
-
hosts:
-
api.example.com
secretName: nodeapp-tls
rules:
-
host:
api.example.com
http:
paths:
-
path: /
pathType: Prefix
backend:
service:
name: nodeapp-svc
port:
number: 80
Helm Charts: Wiederverwendbare K8s-Pakete
Helm
Was ist Helm?
Helm ist der Package Manager für Kubernetes. Charts sind parametrisierbare Templates — einmal schreiben, für jede Umgebung (Dev/Staging/Prod) wiederverwenden.
Chart-Struktur
Helm Chart Verzeichnisstruktur
myapp/
├──
Chart.yaml # Metadaten: Name, Version, Description
├──
values.yaml # Default-Werte (überschreibbar)
└──
templates/
├──
deployment.yaml # {{ .Values.replicas }}, {{ .Values.image }}
├──
service.yaml
├──
ingress.yaml
└──
_helpers.tpl # Wiederverwendbare Template-Funktionen
Typische Helm-Befehle
Terminal
# Chart installieren
helm install myapp ./myapp \
--namespace production \
--set image.tag=
"2.1.0" \
--set replicas=
3
# Mit environment-spezifischen Werten
helm upgrade myapp ./myapp \
-f values-production.yaml \
--atomic --wait
# Rollback auf Revision 2
helm rollback myapp 2
# Alle installierten Releases anzeigen
helm list -A
# Chart rendern ohne Installation (dry-run)
helm template myapp ./myapp -f values-prod.yaml
🤖
Claude Code Prompt: "Erstelle ein vollständiges Helm Chart für meine Python FastAPI-App mit PostgreSQL-Dependency, Health Checks und einem separaten values-production.yaml"
ConfigMaps und Secrets für Konfiguration
Konfiguration gehört nicht ins Docker-Image. Kubernetes trennt Code und Konfiguration sauber über ConfigMaps und Secrets.
ConfigMap
ConfigMap
Nicht-sensible Konfiguration: Feature Flags, Log-Level, API-URLs. Wird als Env-Variable oder gemountete Datei eingebunden.
Secret
Secret
Sensible Daten: DB-Passwörter, API-Keys, TLS-Zertifikate. Base64-kodiert, Zugriff per RBAC beschränkbar.
k8s/config.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nodeapp-config
namespace: production
data:
NODE_ENV:
"production"
LOG_LEVEL:
"info"
API_BASE_URL:
"https://api.example.com"
FEATURE_NEW_UI:
"true"
---
apiVersion: v1
kind: Secret
metadata:
name: nodeapp-secrets
namespace: production
type: Opaque
data:
# echo -n "meinpasswort" | base64
DB_PASSWORD:
bWVpbnBhc3N3b3J0
JWT_SECRET:
c3VwZXJzZWNyZXRrZXkyMDI2
OPENAI_API_KEY:
c2tfeHh4eHh4eHh4eHh4eA==
🔐
Production-Tipp: Secrets in Base64 sind kein Schutz. Nutze Sealed Secrets oder External Secrets Operator (z.B. mit AWS Secrets Manager / Vault). Claude Code erklärt dir das Setup: "Zeig mir External Secrets Operator mit AWS Secrets Manager"
Horizontal Pod Autoscaler: Automatisches Skalieren
HPA
Horizontal Pod Autoscaler (HPA)
Der HPA beobachtet CPU- und Memory-Auslastung (oder Custom Metrics) und skaliert die Pod-Anzahl automatisch zwischen einem Minimum und Maximum. Kein manuelles Eingreifen bei Traffic-Spitzen nötig.
k8s/hpa.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nodeapp-hpa
namespace: production
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nodeapp
minReplicas: 2
maxReplicas: 10
metrics:
-
type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
# Scale up wenn CPU > 70%
-
type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
# Scale up wenn Memory > 80%
behavior:
scaleUp:
stabilizationWindowSeconds: 60
policies:
-
type: Pods
value: 2
periodSeconds: 60
# Max 2 neue Pods pro Minute
scaleDown:
stabilizationWindowSeconds: 300
# 5 Min warten vor Scale-Down
HPA in der Praxis überwachen
Terminal
# Aktuellen HPA-Status anzeigen
kubectl get hpa -n production -w
# Output:
# NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS
# nodeapp-hpa Deployment/nodeapp 68%/70%, 45%/80% 2 10 3
# Metrics Server muss installiert sein:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
📊
KEDA für Custom Metrics: Mit KEDA (Kubernetes Event-Driven Autoscaling) skalierst du auf beliebige Metriken — z.B. Queue-Länge in RabbitMQ oder Requests in Prometheus. claude "Erkläre KEDA ScaledObject für eine RabbitMQ-Queue"
Der Claude Code Kubernetes-Workflow
So arbeitest du mit Claude Code effizient an K8s-Projekten:
Typischer Workflow in Claude Code
# 1. Komplettes Setup für ein neues Projekt
>
claude "Erstelle ein vollständiges Kubernetes Setup für eine
React Frontend + FastAPI Backend + PostgreSQL App.
Ich brauche: Namespaces, Deployments, Services, Ingress,
HPA, ConfigMaps, Secrets und ein Helm Chart."
# 2. Fehler debuggen
>
claude "Mein Pod startet nicht. kubectl describe sagt:
'0/3 nodes are available: insufficient memory'.
Was tun?"
# 3. Best Practices prüfen
>
claude "Review mein Deployment-Manifest auf Security-Best-Practices:
runAsNonRoot, readOnlyRootFilesystem, resource limits"
# 4. Migration zu Helm
>
claude "Konvertiere meine bestehenden YAML-Manifeste in ein
Helm Chart mit values.yaml für dev/staging/production"
Kubernetes-Manifeste in Sekunden — nicht Stunden
Claude Code generiert produktionsreife K8s-YAMLs, Helm Charts und HPA-Konfigurationen — und erklärt jeden Parameter auf Deutsch. Starte deinen kostenlosen Trial.
Kostenlos testen →
Weitere Artikel:
Blog-Übersicht ·
Docker mit Claude Code ·
CI/CD Pipelines