Risolvere i problemi di GKE Ingress


Questa pagina mostra come risolvere i problemi relativi a Ingress in Google Kubernetes Engine (GKE).

Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.

Annotazione errata per la classe Ingress

Sintomo

Quando crei un Ingress, potresti visualizzare il seguente errore:

Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.

Cause potenziali

Durante la creazione di Ingress, potresti aver configurato erroneamente la classe Ingress nel manifest.

Risoluzione

Per specificare una classe Ingress, devi utilizzare l'annotazione kubernetes.io/ingress.class. Non puoi specificare un GKE Ingress utilizzando spec.ingressClassName.

  • Per eseguire il deployment di un bilanciatore del carico delle applicazioni interno, utilizza l'annotazione kubernetes.io/ingress.class: gce-internal.
  • Per eseguire il deployment di un bilanciatore del carico delle applicazioni esterno, utilizza l'annotazione kubernetes.io/ingress.class: gce.

Annotazione errata per l'indirizzo IP statico

Sintomo

Quando configuri un Ingress esterno per utilizzare un indirizzo IP statico, potresti visualizzare il seguente errore:

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.

Cause potenziali

  • Non hai creato un indirizzo IP esterno statico prima di eseguire il deployment di Ingress.
  • Non utilizzi l'annotazione corretta per il tuo tipo di bilanciatore del carico.

Risoluzione

Se stai configurando un Ingress esterno:

Se stai configurando un Ingress interno:

  • Prenota un indirizzo IP interno statico regionale prima di eseguire il deployment di Ingress.
  • Utilizza l'annotazione kubernetes.io/ingress.regional-static-ip-name nella risorsa Ingress.

L'indirizzo IP statico è già in uso

Sintomo

Quando specifichi un indirizzo IP statico per il provisioning della risorsa Ingress interna o esterna, potresti visualizzare il seguente errore:

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.

Cause potenziali

L'indirizzo IP statico è già utilizzato da un'altra risorsa.

Errore durante la disattivazione di HTTP e l'utilizzo di un certificato gestito da Google

Sintomo

Se stai configurando un certificato SSL gestito da Google e disattivi il traffico HTTP su Ingress, viene visualizzato il seguente errore:

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

Cause potenziali

Non puoi utilizzare insieme le seguenti annotazioni durante la configurazione di Ingress:

  • networking.gke.io/managed-certificates (per associare il certificato gestito da Google a un Ingress)
  • kubernetes.io/ingress.allow-http: false (per disattivare il traffico HTTP)

Risoluzione

Disattiva il traffico HTTP solo dopo che il bilanciatore del carico delle applicazioni esterno è completamente programmato. Puoi aggiornare Ingress e aggiungere l'annotazione kubernetes.io/ingress.allow-http: false al manifest.

Manca una subnet solo proxy per un Ingress interno

Sintomo

Quando esegui il deployment di un Ingress per un bilanciatore del carico delle applicazioni interno, potresti visualizzare il seguente errore:

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.

Cause potenziali

Non hai creato una subnet solo proxy prima di creare la risorsa Ingress. Per i bilanciatori del carico delle applicazioni interni è necessaria una subnet solo proxy.

Risoluzione

Crea una subnet solo proxy prima di eseguire il deployment di Ingress interno.

La chiave del certificato SSL è troppo grande

Sintomo

Se la dimensione della chiave del certificato SSL del bilanciatore del carico è troppo grande, potresti visualizzare il seguente errore:

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

Cause potenziali

Google Cloud ha un limite di 2048 bit per le chiavi dei certificati SSL.

Risoluzione

Riduci le dimensioni della chiave del certificato SSL a massimo 2048 bit.

Errore durante la creazione di un Ingress nel livello Standard

Sintomo

Se esegui il deployment di un Ingress in un progetto con il livello di rete predefinito del progetto impostato su Standard, viene visualizzato il seguente messaggio di errore:

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

Risoluzione

Configura il livello di rete predefinito del progetto su Premium.