Google Cloud http (s) Load Balancer gibt trotz fehlerfreiem Backend-Service 502 zurück

11

Ich habe einen GCE http (s) Load Balancer, der so konfiguriert ist, dass er Datenverkehr auf 2 Backends leitet: - das Standard-Backend - ein zweites Backend mit einer separaten Host- / Pfadregel ( <host>:/*)

Beide Backends befinden sich in derselben Instanzgruppe - einem Containercluster, in dem zwei Kubernetes-Dienste ausgeführt werden, die unterschiedliche NodePort verfügbar machen.

Die Instanzgruppe verfügt über zwei benannte Ports, einen für jeden der exponierten NodePorts.

Obwohl beide Backends fehlerfrei sind, geben alle Anforderungen an das zweite Backend 502 zurück.

Die Dienste selbst sind nicht das Problem - wenn ich den Dienst hinter dem 2. Backend auf Standard stelle, funktioniert es einwandfrei.

HINWEIS : Ich habe diese Beschreibung seit ihrer Veröffentlichung erheblich aktualisiert / vereinfacht, da ich das Problem mit einer viel einfacheren Konfiguration reproduzieren kann.

Hawkett
quelle
1
Ich habe hier ein Problem angesprochen
hawkett
Die Antworten in diesem Google-Problem weisen darauf hin, dass es sich um eine Konfiguration handelt. Problem mit der Host / Pfad-Regel.
Hawkett

Antworten:

4

Der Datenverkehr vom Load Balancer zu Ihrer Instanz ist standardmäßig nicht aktiviert. Leider ist dies nicht gut dokumentiert, und wenn Sie einen Load Balancer erstellen, sollte dies automatisch geschehen.

Versuchen Sie, diese Firewall-Regel dem Netzwerk hinzuzufügen, in dem sich Ihr Load Balancer und Ihre VMs befinden:

130.211.0.0/22   tcp:1-5000   Apply to all targets
Tyguy7
quelle
1
Das Problem ist nicht die Firewall-Regel - die Dienste arbeiten einzeln. Aus den Antworten in dem im OP-Kommentar angegebenen Google-Problem geht hervor, dass es sich um ein Konfigurationsproblem in der Host- / Pfadregel handelt.
Hawkett