Training Module
Kubernetes Pod-Fundamentals — Pause-Container, Multi-Container-Muster & Labels
In diesem 120-Minuten-Modul öffnet ihr den Pod, den ihr im
Einführungsmodul bereits gestartet habt, und schaut nach, was darin
wirklich passiert. Los geht es mit dem unsichtbaren
Pause-Container, den Kubernetes vor jedem eigenen
Container startet, um die IP-Adresse des Pods sowie die
Linux-Namespaces (Netzwerk, IPC, UTS) über Neustarts des
Hauptcontainers hinweg stabil zu halten – und der Abgrenzung, wann
ein zweiter Container tatsächlich in denselben Pod gehört. Im
Hands-on baut ihr einen Sidecar-Container zur
Log-Sammlung: Haupt- und Sidecar-Container teilen sich ein
emptyDir-Volume, und ihr bestätigt live per
kubectl logs -c, dass der Sidecar die vom Hauptcontainer
geschriebenen Zugriffsprotokolle tatsächlich sieht. Eine eigene
Übung ergänzt einen Init-Container, der eine
Log-Datei vorbereitet, bevor die Hauptcontainer überhaupt starten.
Danach ordnet ihr den Pod-Lifecycle korrekt ein: die fünf Phasen
Pending/Running/Succeeded/
Failed/Unknown, das Neustartverhalten über
restartPolicy und den Graceful-Shutdown-Ablauf
SIGTERM → Gnadenfrist → SIGKILL bei
kubectl delete pod. Zum Abschluss steht Labels und
Annotations als aktive Steuerungssprache des Clusters auf dem
Programm, mit einer eigenständigen Übung zu beiden Selektor-Arten:
Label-Selektoren (-l, gleichheits- und mengenbasiert)
für eure eigenen Labels, und Field-Selektoren (
–field-selector) für automatische Systemfelder wie
metadata.name oder status.phase.
Voraussetzung ist das Modul “Kubernetes Einführung” – die komplette
Session läuft vollständig lokal über Minikube, ohne Cloud-Account
und ohne Kostenwirkung.
Format
120 Minuten, live (remote oder vor Ort), Input & drei eigenständige Hands-on-Übungen
Teilnehmende
Entwickler:innen und Ops, die vor dem ersten eigenen Deployment verstehen wollen, was in einem Pod tatsächlich passiert
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
Der Pod ist keine Black Box mehr
Der Pause-Container erklärt, warum ein abstürzender Hauptcontainer die IP-Adresse des Pods nicht verliert – ein Detail, das sonst als “Kubernetes-Magie” hingenommen wird, statt als der einfache, nachvollziehbare Mechanismus, der es tatsächlich ist.
Zwei Container, ein Lebenszyklus
Sidecar zur Log-Sammlung und Init-Container zur Vorbereitung sind die zwei häufigsten Multi-Container-Muster im Alltag – beide werden hier selbst gebaut und live verifiziert, nicht nur an der Tafel erklärt.
Zwei Selektor-Arten sauber getrennt
Label-Selektoren für selbst vergebene Metadaten und Field-Selektoren für automatische Systemfelder werden in der Praxis ständig verwechselt – eine eigene Übung stellt beide nebeneinander, statt Field-Selektoren als Randnotiz abzuhandeln.
Was Teilnehmende mitnehmen
- Erklären, warum jeder Pod zuerst einen unsichtbaren Pause-Container startet und was das für IP-Adresse und Linux-Namespaces (Netzwerk, IPC, UTS) über Neustarts des Hauptcontainers hinweg bedeutet.
- Begründen, wann ein zweiter Container tatsächlich in denselben Pod gehört (geteiltes Dateisystem,
localhost-Kommunikation, gemeinsamer Lebenszyklus) – und das Sidecar-Muster an einem selbst gebauten Log-Sammler über ein geteiltesemptyDirdemonstrieren. - Einen Init-Container einsetzen, der sequenziell vor den Hauptcontainern läuft und sich mit Exit-Code 0 beenden muss, bevor diese überhaupt starten.
- Die fünf Pod-Phasen
Pending/Running/Succeeded/Failed/Unknown,restartPolicy(Always/OnFailure/Never) und den Graceful-Shutdown-AblaufSIGTERM→ Gnadenfrist →SIGKILLkorrekt benennen. - Labels von Annotations unterscheiden und die empfohlenen
app.kubernetes.io/-Standard-Labels selbst einsetzen. - Pods über Label-Selektoren filtern: gleichheitsbasiert (
-l environment=production), Ungleichheit und mengenbasiert (-l ‘environment in (…)’). - Pods über Field-Selektoren (
–field-selector) nach Systemfeldern wiemetadata.nameoderstatus.phasefiltern – als eigenständige Übung, getrennt von den Label-Selektoren.
Für wen dieses Modul ideal ist
- • Entwickler:innen und Ops mit abgeschlossenem Modul “Kubernetes Einführung” oder gleichwertigen Vorkenntnissen
- • Alle, die vor dem ersten eigenen Deployment verstehen wollen, was in einem Pod tatsächlich passiert, bevor die eigene Anwendung überhaupt startet
- • Teams, die Labels bislang nur kopiert statt bewusst gesetzt haben und Label- von Field-Selektoren sauber trennen wollen
Rahmendaten
- • Dauer: 120 Minuten live (remote oder vor Ort)
- • Format: Input, Live-Demo, drei eigenständige Hands-on-Übungen (Sidecar, Init-Container, Labels & Selektoren)
- • Voraussetzungen: abgeschlossenes Modul “Kubernetes Einführung”, lauffähige lokale Docker-Umgebung, keine Cloud-Kostenwirkung
Modulaufbau & Agenda
Pod-Konzept & Pause-Container (20 min): wann mehrere Container in denselben Pod gehören, und der Pause-Container-Mechanismus, der IP-Adresse und Linux-Namespaces unabhängig vom Hauptcontainer stabil hält.
Multi-Container-Patterns & Hands-on: Sidecar zur Log-Sammlung (30 min): Sidecar/Ambassador/Adapter im Überblick, danach einen eigenen Pod mit Sidecar-Container und geteiltem
emptyDiranwenden und die gesammelten Logs live prüfen.Init-Container & Hands-on (20 min): Eigenschaften von Init-Containern (sequenziell, vor den Anwendungscontainern, Exit-Code 0 zwingend), danach das Sidecar-Manifest um einen Init-Container erweitern, der die Log-Datei vorbereitet.
Pod-Lifecycle: Phasen, Container-Status, Shutdown (20 min): die fünf Pod-Phasen,
restartPolicyund der Graceful-Shutdown-AblaufSIGTERM→ Gnadenfrist (terminationGracePeriodSeconds) →SIGKILL.Labels, Annotations & Selektoren inkl. Hands-on (30 min): Labels vs. Annotations,
app.kubernetes.io/-Standard-Labels, danach drei Pods mit Labels anlegen und per Label-Selektor sowie per Field-Selektor gezielt filtern.
Dieses Modul setzt das Einstiegsmodul Kubernetes Einführung — der erste Blick unter die Haube voraus. Control-Plane-/Worker-Architektur und das eigene erste Cluster werden dort erklärt und hier nicht erneut eingeführt – dieses Modul beginnt direkt beim Innenleben des Pods.
Aufbauend auf diesem Modul folgt
Kubernetes Workloads & Konfiguration — die Objekte für den Alltag:
Dort werden dieselben fünf Pod-Phasen noch einmal kurz benannt,
aber sofort mit den drei Probe-Handlern (liveness/readiness/
startupProbe) verknüpft – dieses Modul hier liefert die
Phasen, das Aufbaumodul liefert, wie Kubernetes sie
aktiv über Probes beeinflusst. ReplicaSet/Deployment, Service-
Typen sowie ConfigMap und Secret sind ausschließlich dort Thema.
Aufbauend ist außerdem
Kubernetes Anwendungsdesign — Multi-Container-Patterns, Jobs & Security Context:
Das Sidecar-Muster aus diesem Modul wird dort um Ambassador und
Adapter sowie um die Abgrenzung “eigener Pod oder eigenes
Deployment?” vertieft, dazu nodeSelector, Job/
CronJob und securityContext. Dieses Modul ist eine
empfohlene Vorstufe zu Kubernetes Workloads & Konfiguration sowie
zu Kubernetes Anwendungsdesign und vertieft Konzepte, auf denen
beide aufbauen – als formale Voraussetzung führen beide
Zielseiten weiterhin ausschließlich Kubernetes Einführung.
Wer von den Labels aus diesem Modul direkt zur Node-Platzierung
weiterdenkt, findet den passenden nächsten Schritt in
Kubernetes Node-Placement & Taints — nodeSelector, Pod Anti-Affinity und Toleration auf dem Multi-Node-Cluster:
Dort werden die hier gelernten Labels erstmals aktiv fürs
Scheduling eingesetzt – nodeSelector und
hostname-basierte Pod Anti-Affinity auf einem echten
k3d-Multi-Node-Cluster, dazu der vollständige Taint-Zyklus
(setzen, tolerieren, entfernen). Das Modul setzt ausschließlich
dieses Pod-Fundamentals-Modul sowie k3d-Grundwissen voraus,
ausdrücklich nicht “Kubernetes Administration” oder “Kubernetes
Hochverfügbarkeit” – Administration zeigt Taints bislang nur im
Negativfall (Pod ohne Toleration bleibt Pending), Hochverfügbarkeit
behandelt Node-Placement/Taints gar nicht. Für den hier
beschriebenen nächsten Schritt ist keins von beiden Voraussetzung.
Aufbauend ist außerdem
Kubernetes DaemonSets, Downward API & Pod Priority: Knotenweite Dienste, Metadaten-Injektion und Preemption:
Dort setzt ihr erstmals einen knotenweiten Infrastruktur-Workload
per DaemonSet um, injiziert Pod-Metadaten per Downward API in
eure Anwendung und schützt kritische Pods per
PriorityClass vor Verdrängung. Formale Voraussetzung
dafür ist “Kubernetes Node-Placement & Taints”, nicht dieses
Modul direkt.
Hands-on Inhalte (Auszug)
Sidecar zur Log-Sammlung
- Einen Pod mit Webserver-Container und einem
log-collector-Sidecar anwenden, beide über ein gemeinsamesemptyDir-Volume verbunden - Mit
kubectl exec … -c webserver – wget -qO- http://localhostTraffic erzeugen und mitkubectl exec … -c log-collector – cat …live bestätigen, dass der Sidecar die Zugriffsprotokolle tatsächlich sieht
Init-Container ergänzen
- Das Sidecar-Manifest um einen Init-Container erweitern, der die Log-Datei vor dem Start der Hauptcontainer anlegt und initialisiert
- Mit
kubectl get podden ZwischenstatusInit:0/1beobachten, bevor beide Hauptcontainer auf2/2 Runningwechseln
Label-Selektoren live filtern
- Drei Pods mit unterschiedlichen
app.kubernetes.io/- und eigenen Labels anlegen (Frontend/Backend, Produktion/Staging) - Mit
kubectl get pods -lgleichheitsbasiert, mit Ungleichheit und mengenbasiert (in (…)) filtern
Field-Selektoren als eigene Übung
- Denselben Pod gezielt über
–field-selector metadata.name=…statt über ein Label abfragen - Alle laufenden bzw. noch initialisierenden Pods über
–field-selector status.phase=Runningundstatus.phase=Pendinggegenüberstellen
Mehr zu Ambassador und Adapter als weiteren Multi-Container-Mustern sowie zur Abgrenzung “eigener Pod oder eigenes Deployment?” findet ihr im Aufbaumodul Kubernetes Anwendungsdesign — Multi-Container-Patterns, Jobs & Security Context. Hier diente der Sidecar nur als erster, vollständig nachvollzogener Einstieg in Multi-Container-Pods.
Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit bis zum funktionierenden Sidecar-Nachweis) 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-Übungen auf euren Erfahrungsstand an.
Academy Briefing anfragen