Tengo un grupo de instancias con 2 instancias detrás de un balanceador de carga HTTP. una instancia está activa y funcionando normalmente (devuelve http 200), la otra está bloqueada (el HTTP solicita tiempo de espera). No estoy seguro de qué estoy haciendo mal, pero según la documentación, la instancia fallida debería eliminarse automáticamente del balanceador de carga.
Aquí están los documentos relacionados:https://cloud.google.com/compute/docs/load-balancing/health-checks con el párrafo relacionado:
Para que una verificación de estado se considere exitosa, el backend debe devolver una respuesta HTTP válida con el código 200 y cerrar la conexión normalmente dentro del período de tiempo de espera. Si una instancia no supera la verificación de estado, se elimina del grupo o grupo sin que se envíe ninguna notificación. Si luego pasa un control de salud, se devuelve al grupo o grupo, nuevamente sin ninguna notificación.
Esto es lo que veo actualmente en la página de mi consola en la nube de Google para el backend del balanceador de carga HTTP.
Al visitar mi sitio (http://stage2.phantomjscloud.com) Aproximadamente la mitad del tiempo que recibo
Error: Error del servidor El servidor encontró un error temporal y no pudo completar su solicitud. Por favor, intenta otra vez en 30 segundos.
El balanceador de carga HTTP (y la verificación de estado) detecta claramente la instancia fallida, pero de todos modos se le sigue enviando tráfico.
¿Cómo puedo resolver el problema?
Respuesta1
controles de estado grupos de instancias administrados VS controles de estado equilibrio de carga
Las comprobaciones de estado utilizadas por los grupos de instancias administrados son las mismas que utiliza el equilibrio de carga, con algunas diferencias en el comportamiento. Las comprobaciones de estado que aplica a los servicios de equilibrio de carga ayudan al equilibrador de carga a determinar hacia dónde dirigir el tráfico de la red. Estas comprobaciones de estado no hacen que Compute Engine vuelva a crear instancias. Las comprobaciones de estado que aplique a los grupos de instancias administrados indicarán de manera proactiva al grupo de instancias administrado que elimine y vuelva a crear instancias si se vuelven NO SALUDABLES.
Para la mayoría de los escenarios, utilice comprobaciones de estado independientes para el equilibrio de carga y para monitorear los grupos de instancias administrados. Las comprobaciones de estado para el equilibrio de carga pueden y deben ser más agresivas, ya que estas comprobaciones de estado determinan si una instancia recibe tráfico de usuarios. Dado que los clientes pueden confiar en sus servicios, usted desea detectar rápidamente las instancias que no responden para poder redirigir el tráfico si es necesario. Por el contrario, la verificación de estado de los grupos de instancias hará que Compute Engine reemplace proactivamente las instancias fallidas, de modo que pueda crear comprobaciones de estado que sean más conservadoras que las comprobaciones de estado de un balanceador de carga.
Respuesta2
No he visto este tipo de error desde hace tiempo (aproximadamente 6 meses), así que creo que fue un error de Google Cloud y lo solucionaron.