Risolvere i problemi di bilanciamento del carico in GKE


Questa pagina mostra come risolvere i problemi relativi al bilanciamento del carico nei cluster Google Kubernetes Engine (GKE) utilizzando risorse Service, Ingress o Gateway.

Ingress esterno genera errori HTTP 502

Utilizza le seguenti indicazioni per risolvere i problemi relativi agli errori HTTP 502 con le risorse Ingress esterne:

  1. Attiva i log per ogni servizio di backend associato a ogni servizio GKE a cui fa riferimento Ingress.
  2. Utilizza i dettagli dello stato per identificare le cause delle risposte HTTP 502. I dettagli dello stato che indicano che la risposta HTTP 502 ha avuto origine dal backend richiedono la risoluzione dei problemi all'interno dei pod di pubblicazione, non del bilanciatore del carico.

Gruppi di istanze non gestite

Potresti riscontrare errori HTTP 502 con le risorse Ingress esterne se Ingress esterno utilizza backend di gruppi di istanze non gestiti. Questo problema si verifica quando sono soddisfatte tutte le seguenti condizioni:

  • Il cluster ha un numero totale elevato di nodi in tutti i node pool.
  • I pod di pubblicazione per uno o più servizi a cui fa riferimento Ingress si trovano solo su alcuni nodi.
  • Servizi a cui fa riferimento l'utilizzo di Ingress externalTrafficPolicy: Local.

Per determinare se il tuo Ingress esterno utilizza backend di gruppi di istanze non gestiti, esegui le seguenti operazioni:

  1. Vai alla pagina Ingress nella console Trusted Cloud .

    Vai a Ingress

  2. Fai clic sul nome dell'ingresso esterno.

  3. Fai clic sul nome del bilanciatore del carico. Viene visualizzata la pagina Dettagli bilanciamento del carico.

  4. Controlla la tabella nella sezione Servizi di backend per determinare se il tuo ingress esterno utilizza NEG o gruppi di istanze.

Per risolvere il problema, utilizza una delle seguenti soluzioni:

  • Utilizza un cluster nativo di VPC.
  • Utilizza externalTrafficPolicy: Cluster per ogni servizio a cui fa riferimento l'ingresso esterno. Questa soluzione comporta la perdita dell'indirizzo IP del client originale nelle origini del pacchetto.
  • Utilizza l'annotazione node.kubernetes.io/exclude-from-external-load-balancers=true. Aggiungi l'annotazione ai nodi o ai pool di nodi che non eseguono alcun pod di servizio per qualsiasi servizio a cui fa riferimento qualsiasi Ingress esterno o servizio LoadBalancer nel tuo cluster.

Utilizzare i log del bilanciatore del carico per risolvere i problemi

Puoi utilizzare i log del bilanciatore del carico di rete passthrough interno e i log del bilanciatore del carico di rete passthrough esterno per risolvere i problemi relativi ai bilanciatori del carico e correlare il traffico dai bilanciatori del carico alle risorse GKE.

I log vengono aggregati per connessione ed esportati quasi in tempo reale. I log vengono generati per ogni nodo GKE coinvolto nel percorso dei dati di un servizio LoadBalancer, sia per il traffico in entrata che in uscita. Le voci di log includono campi aggiuntivi per le risorse GKE, ad esempio:

  • Nome del cluster
  • Località del cluster
  • Nome servizio
  • Spazio dei nomi del servizio
  • Nome pod
  • Spazio dei nomi pod

Utilizzare gli strumenti di diagnostica per risolvere i problemi

Lo strumento di diagnostica check-gke-ingress esamina le risorse Ingress per individuare configurazioni errate comuni. Puoi utilizzare lo strumento check-gke-ingress nei seguenti modi:

  • Esegui lo strumento a riga di comando gcpdiag sul tuo cluster. I risultati dell'ingresso vengono visualizzati nella sezione gke/ERR/2023_004 della regola di controllo.
  • Utilizza lo strumento check-gke-ingress da solo o come plug-in kubectl seguendo le istruzioni riportate in check-gke-ingress.