Soluciona problemas de Ingress de GKE


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:

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.