Soluciona problemas del balanceo de cargas de HTTP(S) interno

En esta guía, se describe cómo solucionar problemas de configuración de un balanceador de cargas de HTTP(S) interno de Google Cloud. Antes de seguir esta guía, familiarízate con los siguientes conceptos:

Los backends tienen modos de balanceo incompatibles

Cuando creas un balanceador de cargas, es posible que veas el siguiente error:

Validation failed for instance group INSTANCE_GROUP:

backend services 1 and 2 point to the same instance group
but the backends have incompatible balancing_mode. Values should be the same.

Esto sucede cuando intentas usar el mismo backend en dos balanceadores de cargas diferentes, y los backends no tienen modos de balanceo compatibles.

Para obtener más información, consulta lo siguiente:

El tráfico con balanceo de cargas no tiene la dirección de origen del cliente original

Se prevé que esto suceda. El balanceo de cargas de HTTP(S) interno funciona como un proxy inverso (puerta de enlace) HTTP(S). Cuando el programa cliente abre una conexión a la dirección IP de una regla de reenvío INTERNAL_MANAGED, la conexión finaliza en un proxy. El proxy procesa las solicitudes que llegan a través de esa conexión. Para cada solicitud, el proxy selecciona un backend a fin de recibir la solicitud en función del mapa de URL y otros factores. Luego, envía la solicitud al backend seleccionado. Por consiguiente, desde el punto de vista del backend, la fuente de un paquete entrante es una dirección IP de la subred de solo proxy de la región.

El balanceador de cargas rechaza las solicitudes

Para cada solicitud, el proxy selecciona un backend que recibe la solicitud en función de comparador de rutas de acceso en el mapa de URL del balanceador de cargas. Si el mapa de URL no tiene un comparador de rutas de acceso definido para una solicitud, no puede seleccionar un servicio de backend, por lo que muestra un código de respuesta HTTP 404 (No encontrado).

El balanceador de cargas no se conecta a los backends

Los firewalls que protegen tus servidores de backend se tienen que configurar a fin de permitir el ingreso de tráfico desde los proxies en rango de subred de solo proxy que asignaste a la región de tu balanceador de cargas HTTP(S) interno.

Los proxies se conectan a los backends mediante la configuración de conexión especificada por la configuración de tu servicio de backend. Si estos valores no coinciden con la configuración de los servidores que se ejecutan en los backends, el proxy no puede reenviar solicitudes a estos.

Los sondeos de verificación de estado no pueden alcanzar los backends

Para verificar que el tráfico de verificación de estado llegue a tus VM de backend, habilita el registro de verificación de estado y busca entradas de registro exitosas.

Los clientes no pueden conectarse al balanceador de cargas

Los proxies detectan las conexiones con la dirección IP y el puerto del balanceador de cargas que se configuraron en la regla de reenvío (por ejemplo, 10.1.2.3:80) y con el protocolo especificado en la regla de reenvío (HTTP o HTTPS). Si los clientes no se pueden conectar, asegúrate de que usen la dirección, el puerto y el protocolo correctos.

Asegúrate de que un firewall no esté bloqueando el tráfico entre las instancias de los clientes y la dirección IP del balanceo de cargas.

Asegúrate de que los clientes estén en la misma región que el balanceador de cargas. El balanceo de cargas de HTTP(S) interno es un producto regional, por lo que todos los clientes (y backends) deben estar en la misma región que el recurso del balanceador de cargas.

Restricción de la política de la organización para la VPC compartida

Si usas una VPC compartida y no puedes crear un balanceador de cargas de HTTP(S) interno nuevo en una subred en particular, la causa podría ser una política de la organización. En la política de la organización, agrega la subred a la lista de subredes permitidas o comunícate con el administrador de tu organización. Para obtener más información, consulta constraints/compute.restrictSharedVpcSubnetworks

El balanceador de cargas no distribuye el tráfico de manera uniforme entre las zonas

Es posible que observes un desequilibrio en el tráfico del balanceador de cargas HTTP(S) interno entre las zonas. Esto puede suceder especialmente cuando el uso es bajo (menos del 10%) de tu capacidad de backend.

Este comportamiento puede afectar la latencia general, ya que el tráfico se envía solo a algunos servidores en una zona.

Para equilibrar la distribución del tráfico entre zonas, puedes realizar los siguientes cambios de configuración:

  • Usa el modo de balanceo RATE con una capacidad objetivo max-rate-per-instance baja.
  • Usa la política de tráfico del backend LocalityLbPolicy con un algoritmo de balanceo de cargas de LEAST_REQUEST.

Limitaciones

Si tienes problemas para usar el balanceo de cargas de HTTP(S) interno con otras funciones de herramientas redes de Google Cloud, ten en cuenta las limitaciones de compatibilidad actuales.