Soluciona problemas de balanceo de cargas en GKE

En esta página, se muestra cómo resolver problemas relacionados con el balanceo de cargas en clústeres de Google Kubernetes Engine (GKE) mediante recursos de puerta de enlace, Service o Ingress.

El Ingress externo produce errores HTTP 502

Usa la siguiente guía para solucionar errores HTTP 502 con recursos externos de Ingress:

  1. Habilita los registros para cada servicio de backend asociado a cada Service de GKE al que hace referencia el Ingress.
  2. Usa los detalles del estado para identificar las causas de las respuestas HTTP 502. Los detalles de estado que indican la respuesta HTTP 502 que se originó en el backend requieren la solución de problemas dentro de los Pods de entrega, no del balanceador de cargas.

Grupos de instancias no administrados

Es posible que experimentes errores HTTP 502 con recursos de Ingress externos si el Ingress externo usa backends de grupos de instancias no administrados. Este problema se produce cuando se cumplen todas las siguientes condiciones:

  • El clúster tiene una gran cantidad total de nodos entre todos los grupos de nodos.
  • Los Pods de entrega para uno o más servicios a los que hace referencia el Ingress se encuentran en unos pocos nodos.
  • Los servicios a los que se hace referencia en el Ingress usan externalTrafficPolicy: Local.

Para determinar si tu Ingress externo usa backends de grupo de instancias no administrados, haz lo siguiente:

  1. Ve a la página Ingress en la consola de Cloud de Confiance .

    Ir a Ingress

  2. Haz clic en el nombre de tu Ingress externo.

  3. Haz clic en el nombre del balanceador de cargas. Aparecerá la página Detalles del balanceo de cargas.

  4. Verifica la tabla en la sección Servicios de backend para determinar si el Ingress externo usa NEG o grupos de instancias.

Para resolver este problema, usa una de las siguientes soluciones:

  • Usa un clúster nativo de la VPC.
  • Usa externalTrafficPolicy: Cluster para cada servicio al que se hace referencia en el Ingress externo. Esta solución hace que pierdas la dirección IP de cliente original en las fuentes del paquete.
  • Usa la anotación node.kubernetes.io/exclude-from-external-load-balancers=true. Agrega la anotación a los nodos o grupos de nodos que no ejecutan ningún Pod de entrega para ningún Service al que haga referencia cualquier Ingress externo o Service LoadBalancer en el clúster.

Usa los registros del balanceador de cargas para solucionar problemas

Puedes usar los registros del balanceador de cargas de red de transferencia interno y los registros del balanceador de cargas de red de transferencia externo para solucionar problemas relacionados con los balanceadores de cargas y correlacionar el tráfico de los balanceadores de cargas con los recursos de GKE.

Los registros se agregan por conexión y se exportan casi en tiempo real. Los registros se generan para cada nodo de GKE involucrado en la ruta de datos de un Service LoadBalancer, para el tráfico de entrada y salida. Las entradas de registro incluyen campos adicionales para los recursos de GKE, como los siguientes:

  • Nombre del clúster
  • Ubicación del clúster
  • Nombre del servicio
  • Espacio de nombres del servicio
  • Nombre del Pod
  • Espacio de nombres del Pod

Usa herramientas de diagnóstico para solucionar problemas

La herramienta de diagnóstico check-gke-ingress inspecciona los recursos de Ingress en busca de opciones de configuración incorrectas comunes. Puedes usar la herramienta de check-gke-ingress de las siguientes maneras: