Grundlagen von Cloud und Containern
In einer Webanwendung unter Kubernetes wurde die Prüfung der Liveness-Probe so erweitert, dass sie auch prüft, ob sich die Anwendung mit der Datenbank verbinden kann, von der sie abhängt. Welches Problem kann diese Einstellung am ehesten verursachen?
- AFällt die Datenbank aus, werden die Pods automatisch auf den Node verschoben, auf dem die Datenbank läuft, was die übrigen Anwendungen auf diesem Node verlangsamt
- BSchon ein kurzer Ausfall der Datenbank lässt die Container aller Pods wiederholt neu starten, was die Erholung verzögert, auch nachdem die Datenbank wieder verfügbar ist
- CSchlägt die Liveness-Probe fehl, wird der Pod nur aus den Verteilungszielen des Service genommen, daher entsteht kein besonderes Problem
Antwort und Erläuterung anzeigen
Antwort: B. Schon ein kurzer Ausfall der Datenbank lässt die Container aller Pods wiederholt neu starten, was die Erholung verzögert, auch nachdem die Datenbank wieder verfügbar ist
Eine Liveness-Probe dient dazu, einen Container, der selbst nicht mehr antwortet (etwa durch einen Deadlock), durch einen Neustart wiederherzustellen. Prüft sie auch eine Abhängigkeit, schlagen bei einem Ausfall der Datenbank die Liveness-Probes aller Pods fehl, und die Container werden immer wieder neu gestartet, obwohl ein Neustart nichts behebt. Während der Neustarts werden keine Anfragen bearbeitet, und die Wartezeit bis zum nächsten Neustart kann mit jeder Wiederholung wachsen, sodass sich die Erholung auch nach der Rückkehr der Datenbank verzögert. Eine Liveness-Probe sollte nur prüfen, ob der Prozess selbst antworten kann; der Zustand von Abhängigkeiten wird bei Bedarf mit Readiness-Probes oder in der Fehlerbehandlung der Anwendung berücksichtigt.
Weiter: 9 weitere Fragen zu Grundlagen von Cloud und Containern