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:
- Habilita los registros para cada servicio de backend asociado a cada Service de GKE al que hace referencia el Ingress.
- 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:
Ve a la página Ingress en la consola de Cloud de Confiance .
Haz clic en el nombre de tu Ingress externo.
Haz clic en el nombre del balanceador de cargas. Aparecerá la página Detalles del balanceo de cargas.
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: Clusterpara 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 ServiceLoadBalanceren 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:
- Ejecuta la herramienta de línea de comandos de
gcpdiagen tu clúster. Los resultados de Ingress aparecen en la seccióngke/ERR/2023_004de la regla de verificación. - Usa la herramienta de
check-gke-ingresssola o como un complemento de kubectl mediante las instrucciones en check-gke-ingress.