Risolvi i problemi dei bilanciatori del carico di rete passthrough esterni

Questa guida descrive come risolvere i problemi di configurazione Bilanciatore del carico di rete passthrough esterno di Google Cloud Prima di esaminare i problemi, familiarizza con le seguenti pagine:

Risolvere i problemi comuni di Network Analyzer

Network Analyzer il monitoraggio automatico della configurazione della rete VPC e rileva sia le configurazioni non ottimali sia quelle errate. Identifica le reti errori, fornisce informazioni sulle cause principali e suggerisce possibili risoluzioni. 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 Analyzer

Risolvere 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:

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 firewall.

    • Assicurati che il traffico in entrata consenta firewall predefinite sono definite consentire controlli di integrità alle VM di backend.
    • Assicurati che il traffico in entrata consenta firewall consentono il traffico proveniente dai client verso le VM di backend.
    • Assicurati che esistano regole firewall pertinenti per consentire al traffico di raggiungere di backend sulle porte utilizzate dal bilanciatore del carico.
    • Se utilizzi tag di destinazione per il firewall , rendono assicurati che le VM di backend del bilanciatore del carico siano contrassegnate in modo appropriato.

    Per scoprire come configurare le regole firewall richieste dal bilanciatore del carico di rete passthrough esterno, consulta la sezione Configurazione del firewall .

  • Verifica che l'agente guest Google sia in esecuzione sulla VM di backend. Se puoi ti connetti a una VM di backend integro, ma non puoi connetterti al bilanciatore del carico è possibile che l'ospite Google agent (in precedenza, l'agente Windows ambiente guest o ambiente guest Linux) sulla VM non è in esecuzione o non è in grado di comunicare con i metadati server (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 firewall all'interno del sistema operativo guest del una VM di backend (iptables o Windows Firewall) non blocca l'accesso server di metadati.
  • Verifica che le VM di backend accettino i pacchetti inviati al bilanciatore del carico. Ogni VM di backend deve essere configurata in modo da 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 da immagini Google Cloud, il campo Guest dell'agente installa lo strumento per l'indirizzo IP del bilanciatore del carico. Basate su istanze di Google Kubernetes Engine su Container-Optimized OS implementarla utilizzando iptables in alternativa.

    Su una VM di backend Linux, puoi verificare la presenza della route locale eseguendo questo 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'indirizzo IP del servizio e l'associazione di porte nelle VM di backend. I pacchetti inviati a un bilanciatore del carico di rete passthrough esterno arrivano alle VM di backend con all'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:

    • In ascolto (associato a) sull'indirizzo IP del bilanciatore del carico o su qualsiasi indirizzo IP (0.0.0.0 o ::)
    • In ascolto su (associato 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:

    • Tentativo di raggiungere il servizio contattandolo utilizzando l'indirizzo IP interno della VM backend stessa, 127.0.0.1 o localhost.
    • Tenta di raggiungere il servizio contattandolo utilizzando l'indirizzo IP del la regola di forwarding del bilanciatore del carico.
  • 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 constraints/compute.restrictSharedVpcSubnetworks di blocco.

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 tua 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 verificare il numero di backend in stato integro VM in ogni gruppo di istanza di backend. La console Google Cloud mostra anche per identificare 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, Ciò significa che Google Cloud esegue un failover quando meno di due (10 × 0.2 = 2) VM principali sono integre. Un rapporto di failover 0.0 è significa che Google Cloud esegue un failover quando Le VM sono integre.

Altri problemi che possono verificarsi sono i seguenti:

  • Il pool attivo si sposta avanti e indietro (flapping) il backend primari e di failover.

    Utilizzo dei gruppi di istanze gestite con scalabilità automatica potrebbe causare un failover e un failover ripetuti per il pool attivo tra il backend principale e quello di failover. Google Cloud non non sarà possibile configurare il failover con gruppi di istanze gestite, il 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, viene visualizzato il seguente messaggio di errore mentre lo svuotamento della connessione è disabilitato:

    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 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:

  • In alcuni log potrebbero mancare misurazioni RTT, come i valori dei byte, se non vengono campionati un numero sufficiente di pacchetti per acquisire RTT. È più probabile che si verifichi per 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 sono campionati, il valore byte è 0.