En esta página, se muestra cómo resolver problemas relacionados con Ingress en Google Kubernetes Engine (GKE).
Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.
Anotaciones incorrectas para la clase Ingress
Síntoma
Cuando crees un Ingress, es posible que veas el siguiente error:
Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.
Causas posibles
Cuando creaste el Ingress, es posible que hayas configurado incorrectamente la clase de Ingress en el manifiesto.
Solución
Para especificar una clase de Ingress, debes usar la anotación kubernetes.io/ingress.class
. No puedes especificar un Ingress de GKE mediante spec.ingressClassName
.
- Para implementar un balanceador de cargas de aplicaciones interno, usa la anotación
kubernetes.io/ingress.class: gce-internal
. - Para implementar un balanceador de cargas de aplicaciones externo, usa la anotación
kubernetes.io/ingress.class: gce
.
Anotaciones incorrectas para la dirección IP estática
Síntoma
Cuando configures un Ingress externo para usar una dirección IP estática, es posible 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.
Causas posibles
- No creaste una dirección IP externa estática antes de implementar Ingress.
- No estás usando la anotación correcta para tu tipo de balanceador de cargas.
Solución
Si estás configurando un Ingress externo, haz lo siguiente:
- 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 estás configurando un Ingress interno, haz lo siguiente:
- 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 cuando especifiques 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.
Causas posibles
Otro recurso ya está usando la dirección IP estática.
Error cuando se inhabilita HTTP y se usa un certificado administrado por Google
Síntoma
Si configuras un certificado SSL administrado por Google y, además, inhabilitas 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
Causas posibles
No puedes usar las siguientes anotaciones juntas cuando configures el Ingress:
networking.gke.io/managed-certificates
(para asociar el certificado administrado por Google a un Ingress)kubernetes.io/ingress.allow-http: false
(para inhabilitar el tráfico HTTP)
Solución
Inhabilita el tráfico HTTP solo después de que el balanceador de cargas de aplicaciones externo esté completamente programado. Puedes actualizar el Ingress y agregar la anotación kubernetes.io/ingress.allow-http: false
al manifiesto.
Falta la subred de solo proxy para un Ingress interno
Síntoma
Cuando implementes un Ingress para un balanceador de cargas de aplicaciones interno, es posible 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.
Causas posibles
No creaste una subred de solo proxy antes de crear el recurso de Ingress. Se requiere una subred de solo proxy para los balanceadores de cargas de aplicaciones internos.
Solució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 cargas es demasiado grande, es posible 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
Causas posibles
Google Cloud tiene un límite de 2,048 bits para las claves de certificados SSL.
Solución
Reduce el tamaño de la clave del certificado SSL a 2,048 bits o menos.
Error al crear un Ingress en el nivel estándar
Síntoma
Si implementas un Ingress en un proyecto con el nivel de red predeterminado del proyecto configurado 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
Solución
Configura el nivel de red predeterminado del proyecto en Premium.