Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren Sie Tests und Integritätsprüfungen für den Load Balancer
Kubernetes bietet zusätzlich zu den Integritätsprüfungen des Load Balancers mehrere Möglichkeiten, um Integritätsprüfungen für Anwendungen durchzuführen. Sie können die folgenden integrierten Kubernetes-Sonden zusammen mit der Load Balancer-Zustandsprüfung als Befehl im Pod-Kontext oder als HTTP/TCP-Prüfung für Kubelet oder die Host-IP-Adresse ausführen.
Liveness Probes und Readiness Tests sollten unterschiedlich und unabhängig sein (oder zumindest unterschiedliche Timeout-Werte haben). Wenn bei einer Anwendung ein vorübergehendes Problem auftritt, markiert der Bereitschaftstest den Pod so lange als nicht bereit, bis das Problem behoben ist. Wenn die Einstellungen der Liveness-Probe nicht korrekt sind, kann die Liveness-Probe den Pod möglicherweise beenden.
Start-Sonde
Verwenden Sie Starttests, um Anwendungen mit langen Initialisierungszyklen zu schützen. Bis der Starttest erfolgreich ist, sind die anderen Tests deaktiviert.
Sie können eine maximale Zeit definieren, die Kubernetes auf den Start der Anwendung warten soll. Wenn der Pod nach der konfigurierten Höchstzeit die Starttests immer noch nicht bestanden hat, wird die Anwendung beendet und ein neuer Pod erstellt.
Verwenden Sie Starttests, wenn die Startzeit einer Anwendung nicht vorhersehbar ist. Wenn Sie wissen, dass Ihre Anwendung 10 Sekunden benötigt, um zu starten, verwenden Sie stattdessen einen Liveness Test oder einen Readiness Test mitinitialDelaySeconds
.
Lebendigkeitssonde
Verwenden Sie Verfügbarkeitstests, um Anwendungsprobleme zu erkennen oder festzustellen, ob der Prozess ohne Probleme läuft. Mit einer Verfügbarkeitsprüfung können Deadlock-Bedingungen erkannt werden, bei denen der Prozess zwar weiter ausgeführt wird, die Anwendung aber nicht mehr reagiert. Gehen Sie wie folgt vor, wenn Sie einen Liveness Test verwenden:
-
Verwenden Sie diese
initialDelaySeconds
Option, um die erste Sonde zu verzögern. -
Legen Sie für die Tests „Lebendigkeit“ und „Einsatzbereitschaft“ nicht dieselben Spezifikationen fest.
-
Konfigurieren Sie eine Verfügbarkeitsprüfung nicht so, dass sie von einem Faktor abhängt, der außerhalb Ihres Pods liegt (z. B. einer Datenbank).
-
Lege die Lebendigkeitsprüfung auf einen bestimmten Wert fest.
terminationGracePeriodSeconds
Weitere Informationen finden Sie in der Kubernetes-Dokumentation.
Bereitschaftstest
Verwenden Sie einen Bereitschaftstest, um Folgendes festzustellen:
-
Ob die Anwendung bereit ist, Datenverkehr anzunehmen
-
Teilweise Verfügbarkeit, d. h. die Anwendung ist möglicherweise vorübergehend nicht verfügbar, es wird jedoch erwartet, dass sie nach Abschluss eines bestimmten Vorgangs wieder fehlerfrei ist
Mithilfe von Bereitschaftstests kann sichergestellt werden, dass die Anwendungskonfiguration und die Abhängigkeiten ohne Probleme oder Fehler ausgeführt werden, sodass die Anwendung den Datenverkehr verarbeiten kann. Ein schlecht konfigurierter Bereitschaftstest kann jedoch zu einem Ausfall führen, anstatt ihn zu verhindern. Bereitschaftstests, die von externen Faktoren abhängen, wie z. B. der Konnektivität zu einer Datenbank, können dazu führen, dass alle Pods den Test nicht ausführen. Solche Ausfälle können zu einem Ausfall führen, und sie können zu einem kaskadierenden Ausfall von einem Back-End-Dienst zu anderen Diensten führen, die die ausgefallenen Pods verwendet haben.
Zustandsprüfungen für eingehende Ressourcen und Load Balancer
Application Load Balancer und Kubernetes ingress
bieten Funktionen zur Überprüfung des Systemzustands. Geben Sie für die Integritätsprüfungen des Application Load Balancer die Zielports und den Zielpfad an.
Hinweis: Bei Kubernetes wird es zu einer ingress
Latenz bei der Abmeldung kommen. Die Standardeinstellung für Application Load Balancer ist 300 Sekunden. Erwägen Sie, Ihre Zustandsprüfung für Eingangsressourcen oder Load Balancer einzurichten, indem Sie dieselben Werte verwenden, die Sie für Ihren Bereitschaftstest verwendet haben.
NGINX bietet auch einen Gesundheitscheck an. Weitere Informationen finden Sie in der NGINX-Dokumentation
Die Ingress- und Egress-Gateways von Istio verfügen nicht über einen Integritätsprüfungsmechanismus, der mit der HTTP-Zustandsprüfung von NGINX vergleichbar ist. Sie können jedoch eine ähnliche Funktionalität erreichen, indem Sie den Istio-SchutzschalterDestinationRule
Weitere Informationen finden Sie unter EKS Best Practices — Load Balancing (Verfügbarkeit und Pod-Lebenszyklus