Questa guida descrive come risolvere i problemi di configurazione per un bilanciatore del carico di rete passthrough esterno diGoogle Cloud . Prima di esaminare i problemi, acquisisci familiarità con le seguenti pagine:
- Panoramica del bilanciatore del carico di rete passthrough esterno
- Panoramica del bilanciatore del carico di rete passthrough esterno basato sui servizi di backend
- Distribuzione del traffico per i bilanciatori del carico di rete passthrough esterni basati sui servizi di backend
- Panoramica del bilanciatore del carico di rete passthrough esterno basato su pool target
- Concetti di failover per i bilanciatori del carico di rete passthrough esterni
- Logging e monitoraggio del bilanciatore del carico di rete passthrough esterno
Risolvere i problemi comuni di Network Analyzer
Network Analyzer monitora automaticamente la configurazione di rete VPC e rileva sia le configurazioni non ottimali sia quelle errate. Identifica gli errori di rete, fornisce informazioni sulla causa principale e suggerisce possibili soluzioni. Per scoprire i diversi scenari di configurazione errata rilevati automaticamente da Network Analyzer, consulta Approfondimenti sul bilanciatore del carico nella documentazione di Network Analyzer.
Network Analyzer è disponibile nella console Google Cloud come parte di Network Intelligence Center.
Vai a Network AnalyzerRisolvere i problemi di configurazione
I backend hanno modalità di bilanciamento incompatibili
Quando crei un bilanciatore del carico, potresti visualizzare l'errore:
Validation failed for instance group INSTANCE_GROUP: backend services 1 and 2 point to the same instance group but the backends have incompatible balancing_mode. Values should be the same.
Ciò si verifica quando tenti di utilizzare lo stesso backend in due bilanciatori del carico diversi e i backend non hanno modalità di bilanciamento compatibili.
Per ulteriori informazioni, consulta le seguenti risorse:
- Limitazioni e indicazioni per i gruppi di istanze
- Modificare la modalità di bilanciamento di un bilanciatore del carico
Risolvere i problemi di connettività generali
Se non riesci a connetterti al bilanciatore del carico di rete passthrough esterno, controlla i seguenti problemi comuni:
Verifica le regole firewall.
- Assicurati che le regole firewall di autorizzazione in entrata siano definite per consentire i controlli di integrità alle VM di backend.
- Assicurati che le regole firewall di autorizzazione in entrata consentano il traffico verso le VM di backend dai client.
- Assicurati che esistano regole firewall pertinenti per consentire al traffico di raggiungere le VM di backend sulle porte utilizzate dal bilanciatore del carico.
- Se utilizzi tag di destinazione per le regole firewall, assicurati che le VM di backend del bilanciatore del carico siano taggate in modo appropriato.
Per scoprire come configurare le regole firewall richieste dal bilanciatore del carico di rete passthrough esterno, consulta Configurazione delle regole firewall.
Verifica che l'agente guest di Google sia in esecuzione sulla VM di backend. Se riesci a connetterti a una VM di backend integra, ma non riesci a connetterti al bilanciatore del carico, è possibile che l'agente guest Google (in precedenza, l'ambiente guest Windows o Linux) sulla VM non sia in esecuzione o non sia in grado di comunicare con il server di metadati (
metadata.google.internal,169.254.169.254).Verifica quanto segue:
- Assicurati che l'agente guest Google sia installato e in esecuzione sulla VM di backend.
- Assicurati che le regole firewall all'interno del sistema operativo guest della VM di backend (
iptableso Windows Firewall) non blocchino l'accesso al server di metadati.
Verifica che le VM di backend accettino i pacchetti inviati al bilanciatore del carico. Ogni VM di backend deve essere configurata per accettare i pacchetti inviati al bilanciatore del carico. ovvero la destinazione dei pacchetti inviati alle VM di backend è l'indirizzo IP del bilanciatore del carico. Nella maggior parte dei casi, questa operazione viene implementata con una route locale.
Per le VM create da immagini Google Cloud , l'agente guest installa la route locale per l'indirizzo IP del bilanciatore del carico. Le istanze Google Kubernetes Engine basate su Container-Optimized OS implementano questa funzionalità utilizzando invece
iptables.Su una VM di backend Linux, puoi verificare la presenza della route locale eseguendo il seguente comando. Sostituisci
LOAD_BALANCER_IPcon l'indirizzo IP del bilanciatore del carico:sudo ip route list table local | grep LOAD_BALANCER_IP
Verifica l'associazione di indirizzo IP e porta del servizio sulle VM di backend. I pacchetti inviati a un bilanciatore del carico di rete passthrough esterno arrivano alle VM di backend con l'indirizzo IP di destinazione del bilanciatore del carico stesso. Questo tipo di bilanciatore del carico non è un proxy e questo è il comportamento previsto.
Per visualizzare i servizi in ascolto su una porta, esegui questo comando:
netstat -nl | grep ':PORT'
Il software in esecuzione sulla VM di backend deve:
- In ascolto (associato) all'indirizzo IP del bilanciatore del carico o a qualsiasi indirizzo IP
(
0.0.0.0o::) - In ascolto (associato) a una porta inclusa nella regola di forwarding del bilanciatore del carico
Per testare questa funzionalità, connettiti a una VM di backend utilizzando SSH o RDP. Poi esegui i seguenti test utilizzando
curl,telneto uno strumento simile:- Tenta di raggiungere il servizio contattandolo utilizzando l'indirizzo IP interno
della VM di backend stessa,
127.0.0.1o localhost. - Tenta di raggiungere il servizio contattandolo utilizzando l'indirizzo IP della regola di forwarding del bilanciatore del carico.
- In ascolto (associato) all'indirizzo IP del bilanciatore del carico o a qualsiasi indirizzo IP
(
Verifica che il traffico del controllo di integrità possa raggiungere le VM di backend. Per verificare che il traffico del controllo di integrità raggiunga le VM di backend, abilita il logging del controllo di integrità e cerca le voci di log riuscite.
Risolvere i problemi del VPC condiviso
Se utilizzi un VPC condiviso e non riesci a creare un nuovo bilanciatore del carico di rete pass-through esterno in una determinata subnet, la causa potrebbe essere un criterio dell'organizzazione. Nella policy dell'organizzazione, aggiungi la subnet all'elenco delle subnet consentite o contatta l'amministratore dell'organizzazione. Per ulteriori informazioni, consulta il vincolo
constraints/compute.restrictSharedVpcSubnetworks.
Risolvere i problemi di failover
Se hai configurato il failover per un bilanciatore del carico di rete passthrough esterno, segui questi passaggi per verificare la configurazione:
- Assicurati di comprendere i concetti di selezione e monitoraggio della connessione backend e di failover.
- Assicurati di aver designato almeno un backend di failover.
- Esamina quali backend sono integri utilizzando la console Google Cloud o
gcloud compute backend-services get-healthper determinare quali VM sono backend idonei. - Assicurati che il rapporto di failover sia impostato correttamente.
- Sconsigliamo di utilizzare gruppi di istanze gestite con la scalabilità automatica abilitata in combinazione con il failover, perché la scalabilità automatica modifica il numero di backend primari, backend di failover o entrambi. Ciò può comportare la modifica imprevista dell'insieme di backend idonei perché il rapporto di failover è fisso.
- Se una VM client è anche una VM di backend con bilanciamento del carico, le connessioni all'indirizzo IP della regola di forwarding del bilanciatore del carico vengono inviate alla VM di backend stessa. Per maggiori informazioni, consulta Test da un singolo client.
Risolvere i problemi di logging
Se configuri la registrazione per un bilanciatore del carico di rete passthrough esterno, potrebbero verificarsi i seguenti problemi:
- Le misurazioni RTT, come i valori dei byte, potrebbero mancare in alcuni log se non vengono campionati pacchetti sufficienti per acquisire l'RTT. È più probabile che ciò accada per le connessioni a basso volume.
- I valori RTT sono disponibili solo per i flussi TCP.
- Alcuni pacchetti vengono inviati senza payload. Se vengono campionati pacchetti solo di intestazione,
il valore dei byte è
0.