En esta página se explica cómo resolver problemas relacionados con Ingress en Google Kubernetes Engine (GKE).
Si necesitas más ayuda, ponte en contacto con el servicio de atención al cliente de Cloud.
Anotación incorrecta de la clase Ingress
Síntoma
Cuando creas un Ingress, puede que veas el siguiente error:
Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.
Posibles causas
Al crear el Ingress, es posible que hayas configurado incorrectamente la clase de Ingress en el manifiesto.
Resolución
Para especificar una clase Ingress, debes usar la anotación kubernetes.io/ingress.class
. No puedes especificar un Ingress de GKE con spec.ingressClassName
.
- Para desplegar un balanceador de carga de aplicación interno, usa la anotación
kubernetes.io/ingress.class: gce-internal
. - Para desplegar un balanceador de carga de aplicación externo, usa la anotación
kubernetes.io/ingress.class: gce
.
Anotación incorrecta de la dirección IP estática
Síntoma
Cuando configuras un Ingress externo para que use una dirección IP estática, puede que veas el siguiente error:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer <Name of load balancer> does not exist: the given static IP name <Static IP> doesn't translate to an existing static IP.
Posibles causas
- No has creado una dirección IP externa estática antes de implementar el Ingress.
- No estás usando la anotación correcta para tu tipo de balanceador de carga.
Resolución
Si vas a configurar un objeto Ingress externo:
- Reserva una dirección IP externa estática antes de implementar el Ingress.
- Usa la anotación
kubernetes.io/ingress.global-static-ip-name
en tu recurso Ingress.
Si vas a configurar un objeto Ingress interno:
- Reserva una dirección IP interna estática regional antes de implementar el Ingress.
- Usa la anotación
kubernetes.io/ingress.regional-static-ip-name
en tu recurso Ingress.
La dirección IP estática ya está en uso
Síntoma
Es posible que veas el siguiente error al especificar una dirección IP estática para aprovisionar tu recurso Ingress interno o externo:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <LB name> does not exist:
googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP ''<IP address>'' is already being used by another resource.
Posibles causas
Otro recurso ya está usando la dirección IP estática.
Error al inhabilitar HTTP y usar un certificado gestionado por Google
Síntoma
Si estás configurando un certificado SSL gestionado por Google y deshabilitando el tráfico HTTP en tu Ingress, verás el siguiente error:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <Load Balancer name> does not exist:
googleapi: Error 404: The resource ''projects/<Project>/global/sslPolicies/<Policy name>' was not found, notFound
Posibles causas
No puedes usar las siguientes anotaciones juntas al configurar el Ingress:
networking.gke.io/managed-certificates
(para asociar el certificado gestionado por Google a un Ingress)kubernetes.io/ingress.allow-http: false
(para inhabilitar el tráfico HTTP)
Resolución
Inhabilita el tráfico HTTP solo cuando el balanceador de carga de aplicaciones externo esté totalmente programado. Puedes actualizar el Ingress y añadir la anotación kubernetes.io/ingress.allow-http: false
al manifiesto.
Falta la subred de solo proxy para un Ingress interno
Síntoma
Cuando implementas un objeto Ingress para un balanceador de carga de aplicaciones interno, puede que veas el siguiente error:
Error syncing to GCP: error running load balancer syncing routine:
loadbalancer <LB name> does not exist: googleapi: Error 400: Invalid value for field 'resource.target': 'https://www.googleapis.com/compute/v1/projects/<Project ID>/regions/<Region>/targetHttpsProxies/<Target proxy>'.
An active proxy-only subnetwork is required in the same region and VPC as
the forwarding rule.
Posibles causas
No has creado una subred de solo proxy antes de crear el recurso Ingress. Se necesita una subred de solo proxy para los balanceadores de carga de aplicaciones internos.
Resolución
Crea una subred de solo proxy antes de implementar el Ingress interno.
La clave del certificado SSL es demasiado grande
Síntoma
Si el tamaño de la clave del certificado SSL de tu balanceador de carga es demasiado grande, puede que veas el siguiente error:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer gky76k70-load-test-trillian-api-ingress-fliismmb does not exist: Cert creation failures - k8s2-cr-gky76k70-znz6o1pfu3tfrguy-f9be3a4abbe573f7 Error:googleapi: Error 400: The SSL key is too large., sslCertificateKeyTooLarge
Posibles causas
Google Cloud tiene un límite de 2048 bits para las claves de certificados SSL.
Resolución
Reduce el tamaño de la clave del certificado SSL a 2048 bits o menos.
Error al crear un Ingress en el nivel Estándar
Síntoma
Si despliega un Ingress en un proyecto con el nivel de red predeterminado del proyecto definido como Estándar, aparecerá el siguiente mensaje de error:
Error syncing to GCP: error running load balancer syncing routine: load balancer <LB Name> does not exist: googleapi: Error 400: STANDARD network tier (the project''s default network tier) is not supported: STANDARD network tier is not supported for global forwarding rule., badRequest
Resolución
Configure el nivel de red predeterminado del proyecto como Premium.
Siguientes pasos
Si no encuentras una solución a tu problema en la documentación, consulta la sección Obtener asistencia para obtener más ayuda, incluidos consejos sobre los siguientes temas:
- Abrir un caso de asistencia poniéndose en contacto con el equipo de Atención al Cliente de Cloud.
- Obtener asistencia de la comunidad haciendo preguntas en Stack Overflow
y usando la etiqueta
google-kubernetes-engine
para buscar problemas similares. También puedes unirte al#kubernetes-engine
canal de Slack para obtener más ayuda de la comunidad. - Abrir errores o solicitudes de funciones mediante el seguimiento de problemas público.