Configurare il routing del traffico TCP
Questa guida illustra come utilizzare Traffic Director per instradare il traffico a servizi che gestiscono il traffico TCP. Questi servizi includono database, servizi VOIP e piattaforme di gestione, che prevedono di ricevere traffico TCP su porte o intervalli di porte specifiche.
Questa guida si applica al deployment con le API precedenti. Se utilizzi le nuove API di routing dei servizi, che sono in anteprima, consulta la sezione relativa alla configurazione di Traffic Director per i servizi TCP con una risorsa TCPRoute
.
Utilizza questa guida per:
- Configura un servizio che rappresenta una raccolta di backend o endpoint identici che accettano richieste TCP dai client.
- Imposta una mappa di regole di routing in modo che i proxy Envoy configurati da Traffic Director possano inviare richieste TCP.
I seguenti diagrammi mostrano come funziona il routing TCP per le istanze di macchine virtuali (VM) e i gruppi di endpoint di rete (NEG), rispettivamente.
preparazione
- Questa guida si basa sulla guida alla preparazione del criterio Envoy for Service Mesh e presuppone che tu abbia già una conoscenza di base sul funzionamento di Traffic Director.
- Questa guida si concentra sugli aspetti della configurazione di Traffic Director che sono diversi quando configuri i tuoi servizi e il routing per il traffico TCP.
- Questa guida presuppone che tu abbia già configurato un gruppo di istanze (MIG) o un NEG gestito.
Configurare le risorse di bilanciamento del carico
Seguire i passaggi seguenti per configurare le risorse di bilanciamento del carico.
Crea un controllo di integrità TCP
Configura con le VM
Se stai configurando MIG, utilizza il seguente comando per creare un controllo di integrità globale; sostituisci PORT
con il numero di porta TCP 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 controllo di integrità:
gcloud compute health-checks create tcp td-gke-health-check \ --use-serving-port
Per ulteriori informazioni sui controlli di integrità, consulta le seguenti informazioni:
- Creazione di controlli di integrità nella documentazione di Cloud Load Balancing
gcloud compute health-checks create tcp
nel riferimento del comandogcloud
Crea una regola firewall per il controllo di integrità
Questa regola consente ai controlli di integrità dei controlli di integrità di Google Cloud di raggiungere i 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 del comandogcloud
(include indicazioni perTAGS
)
Crea un servizio di backend per i tuoi backend TCP
La configurazione del servizio di backend per TCP con Traffic Director è leggermente diversa dalla configurazione per HTTP. I passaggi seguenti illustrano queste differenze.
Configura con le VM
Se stai configurando MIG, utilizza il seguente comando 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 servizio di backend è l'aggiunta dei backend. Poiché questo passaggio è la configurazione standard di Traffic Director (in altre parole, nulla di specifico per i servizi basati su TCP), non viene visualizzato qui. Per ulteriori informazioni, consulta la sezione Creare il servizio di backend nella guida alla configurazione per le VM di Compute Engine con deployment Envoy automatico.
Configurazione con NEG
Se stai configurando i NEG, utilizza i comandi seguenti per creare un servizio di backend e associare 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
L'ultimo passaggio per la configurazione del servizio di backend è aggiungere il gruppo di backend. Poiché questo passaggio è la configurazione standard di Traffic Director (in altre parole, nulla di specifico per i servizi basati su TCP), non viene visualizzato qui. Per ulteriori informazioni, consulta Creare il servizio di backend nella guida alla configurazione per i pod GKE con inserimento Envoy automatico.
Configura il routing per il servizio di backend basato su TCP
In questa sezione creerai un proxy TCP di destinazione globale e una regola di forwarding globale. Queste risorse consentono alle applicazioni di inviare il traffico ai backend con i 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 regola di forwarding sono il VIP e la porta che le applicazioni utilizzano quando inviano il traffico ai tuoi servizi TCP. Puoi scegliere il VIP da una delle subnet. Traffic Director utilizza questo VIP e questa porta per abbinare le richieste del client a un particolare servizio di backend.
Per informazioni su come le richieste del client vengono abbinate ai servizi di backend, consulta Rilevamento dei servizi.
gcloud
Utilizza il comando seguente per creare il proxy TCP di destinazione; sostituisci
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 e la porta utilizzati per la corrispondenza delle richieste client a un determinato servizio di backend. Per ulteriori informazioni, consulta
gcloud compute forwarding-rules create
nel riferimento ai comandigcloud
.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, Traffic Director è configurato per bilanciare il carico del traffico per il VIP specificato nella regola di forwarding tra i tuoi backend.
Risolvere i problemi
Se le applicazioni tentano di inviare richieste ai tuoi servizi basati su TCP, procedi nel seguente modo:
- Verifica che la porta del controllo di integrità TCP corrisponda alla porta sulla quale l'applicazione prevede di ricevere il traffico per il controllo di integrità.
- Verifica che il nome della porta del servizio di backend corrisponda a quello specificato nel gruppo di istanze.
Passaggi successivi
- Per visualizzare gli altri passaggi della procedura di configurazione, vedi Prepararsi per configurare Traffic Director con Envoy.
- Per informazioni generali sulla risoluzione dei problemi di Traffic Director, consulta la sezione Risoluzione dei problemi relativi ai deployment che utilizzano Envoy.