Configurare il routing del traffico TCP
Questa guida illustra come utilizzare Cloud Service Mesh per instradare il traffico ai servizi che gestiscono il traffico TCP. Questi servizi includono database, servizi VoIP di gestione delle applicazioni, che prevedono di ricevere traffico TCP su porte specifiche intervalli di porte.
Questa guida si applica al deployment con le API precedenti. Se utilizzi il nuovo
API di routing dei servizi, che sono in anteprima, vedi
Configurazione di Cloud Service Mesh per i servizi TCP con una risorsa TCPRoute
.
Utilizza questa guida per:
- Configurare un servizio che rappresenta una raccolta di backend identici che accettano richieste TCP dai client.
- Configura una mappa di regole di routing in modo che Envoy esegua il proxy per Cloud Service Mesh possono inviare richieste TCP.
I seguenti diagrammi mostrano come funziona il routing TCP per la macchina virtuale (VM) istanze e gruppi di endpoint di rete (NEG).
preparazione
- Questa guida si basa sul Envoy per mesh di servizi guida alla preparazione e presuppone che tu abbia già una conoscenza di base di come Cloud Service Mesh funziona.
- La guida si concentra su aspetti della configurazione di Cloud Service Mesh che sono diversi quando configuri i tuoi servizi e il routing per il traffico TCP.
- La guida presuppone che tu abbia già configurato un gruppo di istanze gestite NEG.
Configura le risorse di bilanciamento del carico
Per configurare le risorse di bilanciamento del carico, segui questi passaggi.
Crea un controllo di integrità TCP
Configurazione con VM
Se configuri gruppi di istanze gestite, utilizza il comando seguente per creare un
controllo di integrità; sostituisci PORT
con la porta TCP
numero monitorato da questo controllo di integrità:
gcloud compute health-checks create tcp td-vm-health-check \ --global \ --port=PORT
Configurazione con NEG
Se stai configurando i NEG, utilizza il comando seguente per creare un'integrità verifica:
gcloud compute health-checks create tcp td-gke-health-check \ --use-serving-port
Per ulteriori informazioni sui controlli di integrità, consulta quanto segue:
- Creazione di controlli di integrità nel Documentazione di Cloud Load Balancing
gcloud compute health-checks create tcp
nel riferimento per il comandogcloud
Crea una regola firewall per il controllo di integrità
Questa regola consente ai controlli di integrità di Google Cloud di raggiungere dai tuoi backend.
gcloud
gcloud compute firewall-rules create fw-allow-health-checks \ --action=ALLOW \ --direction=INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags=TAGS \ --rules=tcp:80
Per ulteriori informazioni sulle regole firewall per i controlli di integrità, consulta quanto segue:
- Regole firewall per i controlli di integrità nella documentazione di Cloud Load Balancing
gcloud compute firewall-rules create
nel riferimento per il comandogcloud
(incluse le indicazioni perTAGS
)
Crea un servizio di backend per i backend TCP
La configurazione del servizio di backend per TCP con Cloud Service Mesh è leggermente diversa della configurazione per HTTP. I seguenti passaggi illustrano queste differenze.
Configurazione con VM
Se configuri i gruppi di istanze gestite, utilizza quanto segue per creare un servizio di backend e aggiungere il controllo di integrità:
gcloud compute backend-services create td-vm-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --health-checks=td-vm-health-check \ --protocol=TCP \ --global-health-checks
Il passaggio finale per la configurazione del tuo servizio di backend consiste nell'aggiungere i tuoi backend. Poiché questo passaggio è la configurazione standard di Cloud Service Mesh (in altre parole, niente di specifico per i servizi basati su TCP), non viene mostrato qui. Per ulteriori informazioni, vedi Crea il servizio di backend della guida alla configurazione delle VM di Compute Engine con Envoy automatico e deployment continuo.
Configurazione con NEG
Se stai configurando i NEG, utilizza i comandi seguenti per creare un servizio di backend e associa il controllo di integrità al servizio di backend:
gcloud compute backend-services create td-gke-service \ --global \ --health-checks=td-gke-health-check \ --protocol=TCP \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
Il passaggio finale per la configurazione del servizio di backend consiste nell'aggiungere il tuo backend gruppo. Poiché questo passaggio è la configurazione standard di Cloud Service Mesh (in altre parole, niente di specifico per i servizi basati su TCP), non viene mostrato qui. Per ulteriori informazioni, vedi Crea il servizio di backend della guida alla configurazione dei pod GKE con l'inserimento automatico di Envoy.
Configura il routing per il tuo servizio di backend basato su TCP
In questa sezione, creerai una descrizione proxy TCP di destinazione e una regola di inoltro globale. Queste risorse consentono alle applicazioni di inviare traffico ai backend con dai servizi di backend appena creati.
Considera quanto segue:
- La regola di forwarding deve avere lo schema di bilanciamento del carico
INTERNAL_SELF_MANAGED
. L'indirizzo IP virtuale (VIP) e la porta che configuri nella sono il VIP e la porta utilizzati dalle applicazioni durante l'invio del traffico dai tuoi servizi TCP. Puoi scegliere il VIP da una delle subnet. Cloud Service Mesh utilizza questo VIP e questa porta per abbinare le richieste del client a una un particolare servizio di backend.
Per informazioni su come le richieste del client vengono abbinate ai servizi di backend, consulta Rilevamento dei servizi.
gcloud
Usa il comando seguente per creare il proxy TCP di destinazione: sostituzione
BACKEND_SERVICE
con il nome del servizio di backend creato nel passaggio precedente. Nel seguente esempio, utilizziamotd-tcp-proxy
come nome per il proxy TCP di destinazione, ma puoi scegliere un nome adatto alle tue esigenze.gcloud compute target-tcp-proxies create td-tcp-proxy \ --backend-service=BACKEND_SERVICE
Crea la regola di forwarding. La regola di forwarding specifica il VIP porta utilizzata durante l'abbinamento delle richieste del client a un particolare backend completamente gestito di Google Cloud. Per ulteriori informazioni, vedi
gcloud compute forwarding-rules create
nel riferimento del comandogcloud
.gcloud compute forwarding-rules create td-tcp-forwarding-rule \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --address=VIP\ --target-tcp-proxy=td-tcp-proxy \ --ports=PORT \ --network=default
A questo punto, Cloud Service Mesh è configurato per bilanciare il carico del traffico per al VIP specificato nella regola di forwarding tra i backend.
Risoluzione dei problemi
Se le tue applicazioni tentano di inviare richieste ai tuoi servizi basati su TCP, procedi nel seguente modo:
- Verifica che la porta per il controllo di integrità TCP corrisponda alla porta sulla quale l'applicazione prevede di ricevere traffico di controllo di integrità.
- Verifica che il nome della porta del servizio di backend corrisponda a quanto specificato gruppo di istanze.
Passaggi successivi
- Per visualizzare gli altri passaggi della procedura di configurazione, vedi Preparati a configurare Cloud Service Mesh con Envoy.
- Per trovare informazioni generali sulla risoluzione dei problemi di Cloud Service Mesh, consulta Risoluzione dei problemi dei deployment che utilizzano Envoy.