Google Cloud http (s) equilibrador de carga que devuelve 502 a pesar del servicio de backend saludable

11

Tengo un equilibrador de carga http (s) GCE configurado para dirigir el tráfico a 2 backends: - el backend predeterminado - un segundo backend con una regla de host / ruta separada ( <host>:/*)

Ambos backends existen en el mismo grupo de instancias: un clúster de contenedor que ejecuta dos servicios kubernetes que exponen diferentes NodePort.

El grupo de instancias tiene dos puertos con nombre, uno para cada uno de los NodePorts expuestos.

A pesar de que ambos backends informan que están en buen estado, todas las solicitudes al segundo backend devuelven 502.

Los servicios en sí no son el problema: si cambio el servicio detrás del segundo backend para que sea el predeterminado, funciona bien.

NOTA : He actualizado / simplificado esta descripción considerablemente desde que se publicó por primera vez, ya que puedo reproducir el problema con una configuración mucho más simple.

Hawkett
fuente
1
He planteado un problema aquí: code.google.com/p/google-compute-engine/issues/detail?id=254
hawkett
Las respuestas en este problema de Google apuntan a que se trata de una configuración. problema con la regla de host / ruta.
hawkett

Respuestas:

4

El tráfico del equilibrador de carga a su instancia no está habilitado de forma predeterminada. Desafortunadamente, esto no está bien documentado, y realmente, cuando crea un equilibrador de carga, esto debería suceder automáticamente.

Intente agregar esta regla de firewall a la red en la que se encuentran su equilibrador de carga y máquinas virtuales:

130.211.0.0/22   tcp:1-5000   Apply to all targets
Tyguy7
fuente
1
El problema no es la regla del firewall: los servicios funcionan individualmente. A partir de las respuestas en el problema de Google señaladas en el comentario de OP, parece un problema de configuración en la regla de host / ruta.
hawkett