Questa guida descrive come risolvere i problemi di configurazione Bilanciatore del carico di rete passthrough esterno di Google Cloud Prima di esaminare i problemi, consulta le seguenti pagine:
- Panoramica del bilanciatore del carico di rete passthrough esterno
- Panoramica del bilanciatore del carico di rete passthrough esterno basato su servizi di backend
- Panoramica del bilanciatore del carico di rete passthrough esterno basato su pool di destinazione
- Concetti di failover per i bilanciatori del carico di rete passthrough esterni
- Logging e il bilanciatore del carico di rete passthrough esterno monitoraggio
Risolvere i problemi comuni di Network Analyzer
Network Analyzer monitora automaticamente la configurazione della rete VPC e rileva sia le configurazioni non ottimali sia quelle errate. Identifica gli errori della rete, fornisce informazioni sulla causa principale e suggerisce possibili soluzioni. A di conoscere i diversi scenari di errore di configurazione rilevato da Network Analyzer; consulta Approfondimenti sul bilanciatore del carico nella documentazione di Network Analyzer.
Network Analyzer è disponibile nella console Google Cloud come parte 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.
Questo accade quando provi a utilizzare lo stesso backend in due carichi e i backend non hanno modalità di bilanciamento compatibili.
Per ulteriori informazioni, consulta le seguenti risorse:
- Restrizioni e linee guida, ad esempio gruppi
- Modificare la modalità di bilanciamento di un bilanciatore del carico
Risolvere i problemi generali di connettività
Se non riesci a connetterti al bilanciatore del carico di rete passthrough esterno, verifica i seguenti problemi:
Verifica le regole del firewall.
- Assicurati che il traffico in entrata consenta firewall predefinite sono definite consentire controlli di integrità alle VM di backend.
- Assicurati che le regole del 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 del firewall, assicurati che le VM di backend del bilanciatore del carico siano taggate in modo appropriato.
Per scoprire come configurare le regole del firewall richieste dal bilanciatore del carico di rete passthrough esterno, consulta Configurazione delle regole del firewall.
Verifica che l'agente ospite Google sia in esecuzione sulla VM di backend. Se riesci a collegarti a una VM di backend funzionante, ma non riesci a collegarti al bilanciatore del carico, è possibile che l'agente guest di 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 sul di backend.
- Assicurati che le regole del firewall nel sistema operativo guest della VM di backend (
iptables
o Windows Firewall) non blocchino l'accesso al server dei 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. In altre parole, la destinazione dei pacchetti consegnati alle VM di backend del bilanciatore del carico. Nella maggior parte dei casi, viene implementato con un percorso locale.
Per le VM create dalle immagini Google Cloud, l'agente ospite 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
iptables
.Su una VM di backend Linux, puoi verificare la presenza della route locale eseguendo il seguente comando. Sostituisci
LOAD_BALANCER_IP
con l'indirizzo IP del bilanciatore del carico:sudo ip route list table local | grep LOAD_BALANCER_IP
Verifica l'associazione dell'indirizzo IP e della 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 si tratta di un comportamento previsto.
Per vedere i servizi in ascolto su una porta, esegui questo comando:
netstat -nl | grep ':PORT'
Il software in esecuzione sulla VM di backend deve:
- Ascolto (associazione) sull'indirizzo IP del bilanciatore del carico o su qualsiasi indirizzo IP
(
0.0.0.0
o::
) - In ascolto su (associata a) una porta inclusa nel bilanciatore del carico regola di forwarding
Per verificare, connettiti a una VM di backend utilizzando SSH o RDP. Poi esegui i seguenti test con
curl
,telnet
o uno strumento simile:- Prova a raggiungere il servizio contattandolo utilizzando l'indirizzo IP interno
della VM di backend stessa,
127.0.0.1
o localhost. - Prova a raggiungere il servizio contattandolo utilizzando l'indirizzo IP della regola di inoltro del bilanciatore del carico.
- Ascolto (associazione) sull'indirizzo IP del bilanciatore del carico o su qualsiasi indirizzo IP
(
Verifica che il traffico del controllo di integrità possa raggiungere le VM di backend. Per verificare il traffico del controllo di integrità raggiunge le VM di backend, abilita logging del controllo di integrità e ricerca per le voci di log corrette.
Risoluzione dei problemi del VPC condiviso
Se utilizzi un VPC condiviso e non puoi crearne uno nuovo
un bilanciatore del carico di rete passthrough esterno in una determinata subnet,
la causa. Nel criterio dell'organizzazione, aggiungi la subnet all'elenco delle
subnet o contatta l'amministratore della tua organizzazione. Per ulteriori informazioni, consulta la 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 aver designato almeno un backend di failover.
- Verifica il criterio di failover impostazioni.
Assicurati di comprendere in che modo l'appartenenza ai funziona il pool attivo e quando Google Cloud esegue il failover di failover. Controlla la configurazione del bilanciatore del carico seguendo questi passaggi:
Utilizza la console Google Cloud per controllare il numero di VM di backend in stato integro in ogni gruppo di istanze di backend. La console Google Cloud mostra anche le VM nel pool attivo.
Assicurati che il rapporto di failover del bilanciatore del carico sia impostato correttamente. Ad esempio, se hai dieci VM principali e un rapporto di failover impostato su
0.2
, significa che Google Cloud esegue un failover quando meno di due (10 × 0.2 = 2
) VM principali sono integre. Un rapporto di failover pari a0.0
ha un significato speciale: Google Cloud esegue un failover quando nessuna VM primaria è integra.
Altri problemi che possono verificarsi sono i seguenti:
Il pool attivo passa continuamente (flapping) tra i backend principali e di failover.
L'utilizzo di gruppi di istanze gestite con la scalabilità automatica e il failover potrebbe causare ripetuti failover e failback del pool attivo tra i backend principali e di failover. Google Cloud non impedisce di configurare il failover con i gruppi di istanze gestite, perché il tuo deployment potrebbe trarre vantaggio da questa configurazione.
La disattivazione dello svuotamento della connessione non funziona.
La disabilitazione dello svuotamento della connessione funziona solo se il servizio di backend è configurato con TCP.
Se crei un servizio di backend con UDP mentre lo scarico delle connessioni è disattivato, viene visualizzato il seguente messaggio di errore:
gcloud compute backend-services create my-failover-bs --load-balancing-scheme external \ --health-checks-region us-central1 \ --health-checks my-tcp-health-check \ --region us-central1 \ --no-connection-drain-on-failover \ --drop-traffic-if-unhealthy \ --failover-ratio 0.5 \ --protocol UDP ERROR: (gcloud.compute.backend-services.create) Invalid value for [--protocol]: can only specify --connection-drain-on-failover if the protocol is TCP.
Le connessioni esistenti vengono terminate durante il failover o il failover.
Modifica il criterio di failover del servizio di backend. Assicurati che lo svuotamento della connessione al failover sia abilitato.
Risolvere i problemi di logging
Se configuri il logging per un bilanciatore del carico di rete passthrough esterno, quanto segue che potrebbero verificarsi:
- Le misurazioni del RTT, come i valori in byte, potrebbero non essere presenti in alcuni log se non vengono campionati pacchetti sufficienti per acquisire il RTT. Questo accade più spesso per le connessioni a basso volume.
- I valori RTT sono disponibili solo per i flussi TCP.
- Alcuni pacchetti vengono inviati senza payload. Se i pacchetti con solo intestazione vengono campionati,
il valore byte è
0
.