Kubernetes: Liveness und Readiness Probes erklärt
Wissenswertes
- Kubernetes docs - liveness readiness and startup Probes
- Kuard pod - Pod zum testen der Liveness und Readinessprobes
Basiswissen
Wie kommt eine externe Anfrage zu einem Container?
WAN
–> LoadBalancer
–> Ingress
–> Service
–> Pod
(oder mehrere Pods)
Ein Service
sorgt dafür, dass eine Anfrage einen Pod
erreicht der bereit ist eine Anfrage zu verarbeiten. Dies kann mit Livenes- und Readinessprobes ermittelt werden. Ist ein Pod
nicht “Ready” wird dieser aus dem Service
Objekt entfernt und erst wieder hinzugefügt wenn dieser bereit ist Anfrage zu verarbeiten.
Unterschied Livenessprobe und Readinessprobe
Startupprobe
Kubernetes docs - Startupprobe
Die Startupprobe prüft ob ein Pod überhaupt startet. Erst wenn dies der Fall ist wird eine Liveness- bzw. Readinessprobe durchgeführt.
Livenessprobe
Kubernetes docs - Livenessprobe
Die Livenessprobe sollte prüfen ob ein Pod fehlerfrei starten kann. Bsp.: Der Container startet zwar, aber die Anwendung meldet einen Fehler und der Container bleibt im fehlerhaften zustand erhalten. Schlägt die Livenessprobe fehl, wird der Container neu gestartet.
Readinessprobe
Kubernetes docs - Readinessprobe
Die Readinessprobe prüft, ob ein Pod bereit ist externe Anfragen korrekt zu verarbeiten. Ist dies nicht der Fall, wird Kubernetes keine Anfragen an diesen Pod durch ein Service Object zulassen. Der Container wird nicht neu gestartet.
Liveness und Readinessprobes konfigurieren
Liveness und Readinessprobes sollten für den entsprechenden Pod konfiguriert werden. Die Standardeinstellungen sind nicht für jeden Dienst geeignet.