DevOps & Kubernetes

Kubernetes mit Claude Code: Container-Orchestrierung 2026

📅 5. Mai 2026 ⏱ 11 min Lesezeit 🤖 SpockyMagicAI

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.

BefehlBeschreibung
kubectl get pods -AAlle 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.yamlManifest anwenden / aktualisieren
kubectl delete -f manifest.yamlRessourcen aus Manifest löschen
kubectl exec -it <pod> -- bashShell 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=5Manuell skalieren
kubectl port-forward svc/<name> 8080:80Service 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