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.

Possibili cause

Quando crei Ingress, potresti aver configurato in modo errato 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.

Possibili cause

  • Non hai creato un indirizzo IP esterno statico prima di eseguire il deployment dell'ingresso.
  • Non stai utilizzando 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 dell'ingresso.
  • Utilizza l'annotazione kubernetes.io/ingress.regional-static-ip-name nella risorsa Ingress.

L'indirizzo IP statico è già in uso

Sintomo

Potresti visualizzare il seguente errore quando specifichi un indirizzo IP statico per il provisioning della risorsa Ingress interna o esterna:

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.

Possibili cause

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 disabilitando il traffico HTTP sul tuo 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

Possibili cause

Non puoi utilizzare le seguenti annotazioni insieme quando configuri l'ingresso:

  • 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 è stato completamente programmato. Puoi aggiornare l'ingresso e aggiungere l'annotazione kubernetes.io/ingress.allow-http: false al manifest.

Manca la 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.

Possibili cause

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

Possibili cause

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

Risoluzione

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

Errore durante la creazione di una risorsa Ingress nel livello Standard

Sintomo

Se stai eseguendo 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.

Passaggi successivi