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:
- Prenota un indirizzo IP esterno statico prima di eseguire il deployment di Ingress.
- Utilizza l'annotazione
kubernetes.io/ingress.global-static-ip-name
nella risorsa Ingress.
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.