Lifecycle Hooks sind Callbacks, die das Kubelet zu bestimmten Zeitpunkten im Leben eines Containers ausführt. Kubernetes kennt zwei Ereignisse: postStart direkt nach dem Erstellen und preStop unmittelbar vor dem Beenden. Pro Ereignis ist ein Handler erlaubt.
postStart
Der Hook startet, sobald der Container angelegt ist. Er läuft parallel zum ENTRYPOINT — es gibt keine Garantie, dass er vor dem eigentlichen Programm beginnt. Der Container gilt erst als lauffähig, wenn der Hook abgeschlossen ist; ein langer Hook verzögert damit auch den Übergang zu Running und alle Probes. Schlägt der Handler fehl, beendet Kubernetes den Container und startet ihn gemäß der restartPolicy neu.
preStop
Der Hook läuft, wenn der Container beendet werden soll — nach einer Löschanfrage oder auch nach einem Probe-Fehler. Er ist synchron: Das TERM-Signal geht erst raus, wenn der Handler fertig ist. Hängt der Hook, bleibt der Pod im Zustand Terminating, bis terminationGracePeriodSeconds (Standard 30 Sekunden) abgelaufen ist und der Container hart beendet wird. Ein Fehler im Handler verhindert das Beenden nicht — das Signal wird anschließend trotzdem gesendet.
Handler-Typen
- exec: führt einen Befehl im Container aus.
- httpGet: ruft einen HTTP-Endpunkt auf; die Anfrage stellt das Kubelet.
- sleep: wartet eine angegebene Dauer — nur für
preStopund seit Kubernetes 1.30 standardmäßig aktiv. - tcpSocket: veraltet und ohne Prüfung; Hooks mit TCP-Handler schlagen zur Laufzeit fehl.
Typische Einsatzfälle
- Beim Start Konfiguration nachladen oder einen Cache vorwärmen.
- Vor dem Beenden offene Verbindungen schließen und den Pod aus dem Load Balancer austragen lassen; ein kurzer Sleep im Hook gibt Endpoint-Consumern Zeit, den Traffic umzustellen.
- Aufräumarbeiten, die über den normalen Shutdown-Pfad der Anwendung nicht abgedeckt sind.
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 5"]
Abgrenzung
Probes prüfen den Gesundheitszustand laufender Container und lösen im Fehlerfall Neustarts aus, führen aber selbst keine Aktionen aus. Hooks dagegen handeln zu festen Zeitpunkten. Der geordnete Ablauf beim Herunterfahren ist im Artikel Graceful Shutdown beschrieben.