équilibreur de charge google cloud http (s) renvoyant 502 malgré un service backend sain

11

J'ai un équilibreur de charge http (s) GCE configuré pour diriger le trafic vers 2 backends: - le backend par défaut - un second backend avec une règle hôte / chemin d'accès distincte ( <host>:/*)

Les deux backends existent sur le même groupe d'instances - un cluster de conteneurs exécutant deux services kubernetes qui exposent différents NodePort.

Le groupe d'instances a deux ports nommés, un pour chacun des NodePorts exposés.

Bien que les deux backends rapportent sain, toutes les demandes au deuxième backend retournent 502.

Les services eux-mêmes ne sont pas le problème - si je change le service derrière le 2ème backend pour être par défaut, cela fonctionne très bien.

REMARQUE : j'ai mis à jour / simplifié considérablement cette description depuis sa première publication, car je suis en mesure de reproduire le problème avec une configuration beaucoup plus simple.

Hawkett
la source
1
J'ai soulevé un problème ici: code.google.com/p/google-compute-engine/issues/detail?id=254
hawkett
Les réponses dans ce problème google indiquent qu'il s'agit d'une configuration. problème avec la règle hôte / chemin.
hawkett

Réponses:

4

Le trafic de l'équilibreur de charge vers votre instance n'est pas activé par défaut. Malheureusement, cela n'est pas bien documenté, et vraiment, lorsque vous créez un équilibreur de charge, cela devrait se produire automatiquement.

Essayez d'ajouter cette règle de pare-feu au réseau sur lequel se trouvent votre équilibreur de charge et vos machines virtuelles:

130.211.0.0/22   tcp:1-5000   Apply to all targets
Tyguy7
la source
1
Le problème n'est pas la règle du pare-feu - les services fonctionnent individuellement. D'après les réponses au problème google notées dans le commentaire OP, cela ressemble à un problème de configuration sur la règle hôte / chemin.
hawkett