Training Module
Kubernetes Workloads & Konfiguration — die Objekte für den Alltag
In diesem 120-Minuten-Modul schreibt ihr die Manifeste, mit denen ihr im
Kubernetes-Alltag tatsächlich arbeitet. Los geht es mit dem Innenleben
eines Pods: den fünf Lifecycle-Phasen und den drei Probe-Handlern
Exec/TCP/HTTP, die hinter liveness-, readiness- und
startupProbe stecken – Selbstheilung und Traffic-Steuerung sind
zwei unterschiedliche Dinge, und ihr lernt, wann welche greift. Danach
ordnet ihr das ReplicaSet als Nachfolger des veralteten
ReplicationControllers ein und arbeitet mit der eigentlichen
Deployment-Mechanik: Rolling Update, Rollback und Skalierung über
kubectl rollout status/undo/pause/resume. Es folgt ein
Vergleich der vier Service-Typen ClusterIP, NodePort, LoadBalancer und
ExternalName, danach die Entkopplung von Konfiguration über ConfigMap
und Secret – als Volume und als Environment-Variable, mit dem korrekten
Unterschied zwischen Klartext (ConfigMap) und Base64-kodiert, aber
ausdrücklich NICHT verschlüsselt (Secret). Im Hands-on schreibt und
wendet ihr ein eigenes Manifest-Set an, aktualisiert ein Image per
Rolling Update und baut bewusst einen falschen Probe-Pfad ein, um den
entstehenden Restart-Loop mit kubectl describe pod und
kubectl logs –previous zu debuggen. Voraussetzung ist das
Modul “Kubernetes Einführung” – die komplette Session läuft weiterhin
vollständig lokal über Minikube, ohne Cloud-Account und ohne
Kostenwirkung.
Format
120 Minuten, live (remote oder vor Ort), Input & Hands-on
Teilnehmende
Entwickler:innen und Ops, die eigene Kubernetes-Manifeste schreiben wollen
Voraussetzungen
Abgeschlossenes Modul “Kubernetes Einführung” oder gleichwertige Vorkenntnisse, lauffähige lokale Docker-Umgebung für Minikube
Warum dieses Training für deine Organisation wirkt
Vom Lesen zum Schreiben
Nach dem ersten eigenen Cluster kommt jetzt das eigene Manifest: Pod-Lifecycle, die drei Probe-Handler und der Unterschied zwischen Selbstheilung (liveness) und Traffic-Steuerung (readiness) sind das Fundament für jedes produktionsnahe Deployment.
Konfiguration sauber getrennt
ConfigMap und Secret entkoppeln Konfiguration vom Container-Image – inklusive einer ehrlichen Einordnung: Ein Secret ist Base64-kodiert, nicht verschlüsselt. Wer hier eine falsche Erwartung mitnimmt, baut später eine Sicherheitslücke.
Debugging ist Teil des Kurses
Ein bewusst falscher Probe-Pfad erzeugt live einen
Restart-Loop – und ihr lernt kubectl describe pod
und kubectl logs –previous genau dort einzusetzen,
wo sie im echten Betrieb gebraucht werden.
Was Teilnehmende mitnehmen
- Die Pod-Lifecycle-Phasen (Pending, Running, Succeeded, Failed, Unknown) und die drei Probe-Handler Exec/TCP/HTTP benennen.
liveness-,readiness-undstartupProbekonfigurieren und den Unterschied zwischen Selbstheilung (liveness) und Traffic-Steuerung (readiness) einordnen.- Das ReplicaSet als Nachfolger des veralteten ReplicationControllers einordnen – mit Label-Selector statt reiner Gleichheitsselektion.
- Ein Deployment für Rolling Update, Rollback und Skalierung nutzen:
kubectl rollout status/undo/pause/resume. - Die vier Service-Typen ClusterIP, NodePort, LoadBalancer und ExternalName unterscheiden und einem passenden Einsatzzweck zuordnen.
- ConfigMap und Secret als Volume und als Environment-Variable einbinden – inklusive dem korrekten Unterschied zwischen Klartext (ConfigMap) und Base64-kodiert, aber NICHT verschlüsselt (Secret).
- Ein eigenes Manifest-Set (Deployment, Service, ConfigMap, Secret) selbst schreiben, anwenden und bei einem kaputten Probe-Pfad gezielt debuggen.
Für wen dieses Modul ideal ist
- • Entwickler:innen und Ops mit abgeschlossenem Modul “Kubernetes Einführung” oder gleichwertigen Vorkenntnissen
- • Alle, die jetzt selbst produktionsnahe Manifeste schreiben wollen, statt nur
kubectl get-Ausgaben zu lesen - • Teams, die vor dem ersten eigenen Secret wissen wollen, was Base64 tatsächlich schützt – und was nicht
Rahmendaten
- • Dauer: 120 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, ausführliches Hands-on mit eigenem Manifest-Set
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes Einführung”, lauffähige lokale Docker-Umgebung, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Pod-Innenleben & Health-Checks (25 min): die fünf Lifecycle-Phasen Pending/Running/Succeeded/Failed/Unknown, die drei Probe-Handler Exec/TCP/HTTP, und der Unterschied zwischen liveness (Selbstheilung), readiness (Traffic-Steuerung) und startupProbe.
ReplicaSet & Deployment-Mechanik (30 min): das ReplicaSet als Nachfolger des veralteten ReplicationControllers mit Label-Selector, und das Deployment für Rolling Update, Rollback und Skalierung über
kubectl rollout status/undo/pause/resume.Service-Typen im Vergleich (20 min): ClusterIP, NodePort, LoadBalancer und ExternalName im direkten Vergleich – wann welcher Typ der richtige ist.
Konfiguration entkoppeln: ConfigMap & Secret (25 min): beide als Volume und als Environment-Variable einbinden, sowie der korrekte Unterschied zwischen Klartext (ConfigMap) und Base64-kodiert, aber ausdrücklich NICHT verschlüsselt (Secret).
Hands-on: eigenes Manifest-Set, Image-Update, Debugging (20 min): Deployment, Service, ConfigMap und Secret selbst schreiben und anwenden, ein Image-Update per Rolling Update fahren und einen bewusst kaputten Probe-Pfad debuggen.
Dieses Modul setzt das Einstiegsmodul Kubernetes Einführung — der erste Blick unter die Haube voraus. Control-Plane-/Worker-Architektur, der Pod als kleinste Einheit und das eigene erste Cluster werden dort erklärt und hier nicht erneut eingeführt – dieses Aufbaumodul beginnt direkt beim Schreiben eigener Manifeste.
Wer die Service-Grundlagen und die readinessProbe aus diesem Modul bereits beherrscht und tiefer einsteigen will – Endpoints/ EndpointSlices, SRV-Records, dnsPolicy/dnsConfig sowie Ingress- Pfad-Routing – findet das im Vertiefungsmodul Kubernetes Networking Vertiefung — Service Discovery, DNS und Ingress-Pfadregeln.
Wer stattdessen die Betreiber-Perspektive einnehmen will – Namespace/ResourceQuota, RBAC, Cluster-Netzwerk-Grundmodell, Node-Administration und High Availability als Konzept – findet das im gleichrangigen, unabhängigen Vertiefungsmodul Kubernetes Administration — RBAC, Node-Betrieb und Cluster-Netzwerk.
Wer stattdessen die Anwendungsdesign-Perspektive einnehmen will – Multi-Container-Pod-Patterns (Sidecar/Ambassador/Adapter), Job/CronJob für Batch-Workloads sowie securityContext und ServiceAccount zur Runtime-Absicherung – findet das im gleichrangigen, unabhängigen Vertiefungsmodul Kubernetes Anwendungsdesign — Multi-Container-Patterns, Jobs & Security Context.
Wer stattdessen die Storage-Perspektive einnehmen will – emptyDir und hostPath im Vergleich zu PersistentVolume, PersistentVolumeClaim mit Binding-Regel, AccessModes und StorageClass – findet das im gleichrangigen, unabhängigen Vertiefungsmodul Kubernetes Storage — Volumes, PersistentVolumes & Claims.
Wer stattdessen wissen will, wie sich eine bereits laufende
Anwendung diagnostizieren lässt – Prometheus-Scrape-Annotationen,
kubectl top pods, Ephemeral Containers per
kubectl debug und die dreistufige
Service-Troubleshooting-Kette Port-Forward → Endpoints →
DNS-Test-Pod – findet das im gleichrangigen, unabhängigen
Vertiefungsmodul
Kubernetes: Monitoring & Troubleshooting.
Wer stattdessen wissen will, wie viel ein Container verbrauchen
darf – requests/limits, die drei
QoS-Klassen, LimitRange als Namespace-Default sowie
der HorizontalPodAutoscaler mit seiner harten Kopplung an
requests.cpu – findet das im gleichrangigen,
unabhängigen Vertiefungsmodul
Kubernetes Ressourcenmanagement & Autoscaling — Requests, Limits und HorizontalPodAutoscaler.
Wer stattdessen eigene und fremde Anwendungen als versionierte
Releases statt loser Manifest-Dateien betreiben will – Chart/
Release/Repository als Grundbegriffe, Chart-Struktur und
Go-Template-Syntax, das komplette Lifecycle-Management
helm install/upgrade/rollback/history sowie die
Installation eines realen, öffentlichen Charts – findet das im
gleichrangigen, unabhängigen Vertiefungsmodul
Helm — Paketmanagement für Kubernetes.
Alle sieben Vertiefungsmodule setzen nur dieses Aufbaumodul voraus,
nicht sich gegenseitig, und lassen sich in beliebiger Reihenfolge
buchen.
Wer beim Secret aus diesem Modul über den Merksatz “Base64-kodiert,
aber NICHT verschlüsselt” hinaus wissen will, wie sich Secrets
tatsächlich vor unautorisiertem etcd-Zugriff schützen lassen –
Secrets-Encryption-at-Rest über eine
EncryptionConfiguration, dazu Namespace-weite
Pod-Härtung über Pod Security Admission – findet das im
Aufbaumodul
Kubernetes Security Vertiefung — Pod Security Admission & Secrets-Härtung,
das die zwei Vertiefungsmodule “Kubernetes Administration” und
“Kubernetes Anwendungsdesign” voraussetzt.
Wer die PersistentVolumeClaim aus diesem Modul mit einem
Workload-Typ kombinieren will, der pro Replica automatisch eine
eigene PVC erhält – stabile, geordnete Pod-Identität statt
austauschbarer Pods, volumeClaimTemplates sowie die
Kopplung an einen Headless Service für stabile Pro-Pod-DNS-Namen –
findet das im Aufbaumodul
Kubernetes StatefulSets — Stabile Identität für zustandsbehaftete Workloads,
das die zwei Vertiefungsmodule “Kubernetes Storage” und
“Kubernetes Networking Vertiefung” voraussetzt.
Wer die Deployment-Richtung aus diesem Modul umdrehen will – statt
einer CI-Pipeline, die mit kubectl apply aktiv in den
Cluster schreibt, ein GitOps-Operator, der sich Änderungen selbst
aus Git holt –, dazu die ArgoCD-Application-CRD,
Sync-Status gegen Health-Status, Drift Detection & Self-Healing
sowie Rollback per git revert statt dem hier gelehrten
kubectl rollout undo – findet das im Aufbaumodul
Kubernetes GitOps — Deklaratives Deployment mit ArgoCD,
das dieses Aufbaumodul voraussetzt; “Helm — Paketmanagement für
Kubernetes” ist dafür empfohlen, aber keine Pflicht.
Hands-on Inhalte (Auszug)
Eigenes Manifest-Set schreiben
- Ein Deployment mit 2 Replicas inklusive
livenessProbeundreadinessProbe, deklariert mitapiVersion: apps/v1– nicht mit dem seit Kubernetes 1.16 entferntenextensions/v1beta1 - Ein passender Service, eine ConfigMap und ein Secret, alle vier Manifeste per
kubectl apply -fgemeinsam angewendet - Kontrolle über
kubectl get pods/deployment/service/configmap/secret, ob alle vier Objekte wie erwartet laufen
Image-Update & Rollback
- Ein neues Image mit
kubectl set imageausrollen und den Fortschritt live mitkubectl rollout statusverfolgen - Mit
kubectl rollout undogezielt auf die vorherige, funktionierende Version zurückrollen - Den Unterschied zwischen Rolling Update (schrittweise) und einem harten Neustart aller Replicas gleichzeitig einordnen
Debugging: kaputte Probe
- Bewusst einen falschen Probe-Pfad einbauen und live beobachten, wie Kubernetes daraufhin in einen Restart-Loop geht
- Mit
kubectl describe poddie Events und den Grund für den Neustart einsehen - Mit
kubectl logs –previousdie Logs des bereits neu gestarteten, vorherigen Containers auslesen
ConfigMap ändern, Volume vs. Env-Var
- Die ConfigMap nachträglich ändern und zeigen, dass der Volume-Mount die neuen Werte automatisch nachzieht
- Denselben Wert zusätzlich als Environment-Variable einbinden und beobachten, dass diese erst nach einem Neustart des Pods aktualisiert wird
- Klartext-ConfigMap und Base64-kodiertes-aber-nicht-verschlüsseltes Secret nebeneinander per
kubectl get -o yamlvergleichen
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit bis zum lauffähigen eigenen Manifest-Set) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.
Bereit, das Modul zu buchen?
Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.
Academy Briefing anfragen