Google Cloud: Health Check entfernt fehlgeschlagene Instanzen nicht aus dem HTTP Load Balancer

Google Cloud: Health Check entfernt fehlgeschlagene Instanzen nicht aus dem HTTP Load Balancer

Ich habe eine Instanzgruppe mit 2 Instanzen hinter einem HTTP-Load Balancer. Eine Instanz ist aktiv und funktioniert normal (gibt HTTP 200 zurück), die andere ist abgestürzt (Timeout bei HTTP-Anfragen). Ich bin nicht sicher, was ich falsch mache, aber laut Dokumentation sollte die ausgefallene Instanz automatisch aus dem Load Balancer entfernt werden.

Hier sind die zugehörigen Dokumente:https://cloud.google.com/compute/docs/load-balancing/health-checks mit dem dazugehörigen Absatz:

Damit eine Integritätsprüfung als erfolgreich gilt, muss das Backend eine gültige HTTP-Antwort mit Code 200 zurückgeben und die Verbindung innerhalb des TimeoutSec-Zeitraums normal schließen. Wenn eine Instanz die Integritätsprüfung nicht besteht, wird sie aus der Gruppe oder dem Pool entfernt, ohne dass eine Benachrichtigung gesendet wird. Wenn sie später eine Integritätsprüfung besteht, wird sie wieder ohne Benachrichtigung an die Gruppe oder den Pool zurückgegeben.

Folgendes sehe ich derzeit auf meiner Google Cloud Console-Seite für das Backend des HTTP Load Balancers.

Bildbeschreibung hier eingeben

Wenn Sie meine Site besuchen (http://stage2.phantomjscloud.com) Ungefähr die Hälfte der Zeit bekomme ich

Fehler: Serverfehler. Auf dem Server ist ein temporärer Fehler aufgetreten und Ihre Anfrage konnte nicht abgeschlossen werden. Bitte versuchen Sie es in 30 Sekunden erneut.

Der HTTP-Load Balancer (und die Integritätsprüfung) erkennt die ausgefallene Instanz eindeutig, aber der Datenverkehr wird trotzdem weiterhin an sie weitergeleitet.

Wie kann ich das Problem lösen?

Antwort1

Integritätsprüfungen verwaltete Instanzgruppen VS Integritätsprüfungen Lastenausgleich

Die von verwalteten Instanzgruppen verwendeten Integritätsprüfungen sind dieselben wie die von Load Balancing, weisen jedoch einige Verhaltensunterschiede auf. Integritätsprüfungen, die Sie auf Load Balancing-Dienste anwenden, helfen einem Load Balancer dabei, zu bestimmen, wohin der Netzwerkverkehr geleitet werden soll. Diese Integritätsprüfungen veranlassen Compute Engine nicht dazu, Instanzen neu zu erstellen. Integritätsprüfungen, die Sie auf verwaltete Instanzgruppen anwenden, signalisieren der verwalteten Instanzgruppe proaktiv, Instanzen zu löschen und neu zu erstellen, wenn sie NICHT GESUND sind.

Verwenden Sie für die meisten Szenarien separate Integritätsprüfungen für den Lastenausgleich und für die Überwachung verwalteter Instanzgruppen. Integritätsprüfungen für den Lastenausgleich können und sollten aggressiver sein, da diese Integritätsprüfungen bestimmen, ob eine Instanz Benutzerverkehr empfängt. Da Kunden möglicherweise auf Ihre Dienste angewiesen sind, möchten Sie nicht reagierende Instanzen schnell erkennen, damit Sie den Verkehr bei Bedarf umleiten können. Im Gegensatz dazu führt die Integritätsprüfung für Instanzgruppen dazu, dass Compute Engine fehlerhafte Instanzen proaktiv ersetzt, sodass Sie Integritätsprüfungen erstellen können, die konservativer sind als Integritätsprüfungen für einen Lastenausgleich.

https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances#monitoring_groups

Antwort2

Ich habe diese Art von Fehler schon seit einer Weile (ungefähr 6 Monate) nicht mehr gesehen, daher denke ich, dass es ein Fehler bei Google Cloud war und dass sie ihn behoben haben.

verwandte Informationen