Configura i servizi TCP
Questa guida spiega come configurare Cloud Service Mesh per utilizzare i servizi TCP e le risorse TCPRoute
.
Cloud Service Mesh con servizi TCP e TCPRoute
è simile alla configurazione del proxy sidecar Envoy con servizi HTTP. Le eccezioni sono che il servizio di backend fornisce un servizio TCP e il routing si basa su parametri TCP/IP anziché sul protocollo HTTP.
Prima di iniziare
Assicurati di completare le attività descritte in Prepararsi alla configurazione con Envoy e i carichi di lavoro senza proxy.
Configurazione della risorsa Mesh
In un file denominato
mesh.yaml
, crea la specifica della risorsamesh
.name: sidecar-mesh
Utilizza il file
mesh.yaml
per creare la risorsamesh
.gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global
Configura il server TCP
Questa parte della guida non è specifica per le nuove API e utilizza le risorse di servizio di backend, controllo di integrità e MIG esistenti.
A scopo dimostrativo, crei un servizio di backend con VM con scalabilità automatica utilizzando gruppi di istanze gestite che forniscono un servizio TCP di test sulla porta 10000
.
Crea un modello di istanza VM di Compute Engine con un servizio di test sulla porta
10000
.gcloud compute instance-templates create tcp-td-vm-template \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --tags=allow-health-checks \ --image-family=debian-10 \ --image-project=debian-cloud \ --metadata=startup-script="#! /bin/bash sudo apt-get update -y sudo apt-get install netcat -y while true; do echo 'Hello from TCP service' | nc -l -s 0.0.0.0 -p 10000; done &"
Creare un gruppo di istanze gestite basato sul modello.
gcloud compute instance-groups managed create tcp-td-mig-us-east1 \ --zone=ZONE \ --size=1 \ --template=tcp-td-vm-template
Imposta le porte denominate sul gruppo di istanze gestite creato sulla porta 10000.
gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1
--zone=ZONE
--named-ports=tcp:10000Creare un controllo di integrità.
gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000
Crea una regola firewall per consentire le connessioni in entrata controllo di integrità alle istanze nella tua rete.
gcloud compute firewall-rules create tcp-vm-allow-health-checks \ --network default \ --action allow \ --direction INGRESS \ --source-ranges=35.191.0.0/16,130.211.0.0/22 \ --target-tags allow-health-checks \ --rules tcp:10000
Crea un servizio di backend globale con uno schema di bilanciamento del carico di
INTERNAL_SELF_MANAGED
e collega il controllo di integrità al servizio di backend. L'esempio utilizza il gruppo di istanze gestite che esegue il servizio TCP di esempio che hai creato in precedenza.gcloud compute backend-services create tcp-helloworld-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --protocol=TCP \ --health-checks tcp-helloworld-health-check
Aggiungi il gruppo di istanze gestite al servizio di backend.
gcloud compute backend-services add-backend tcp-helloworld-service \ --instance-group tcp-td-mig-us-east1 \ --instance-group-zone=ZONE \ --global
Configurazione del routing con TCPRoute
In questa sezione viene configurato il routing.
In un file denominato
tcp_route.yaml
, crea la specificaTcpRoute
.Puoi utilizzare
$PROJECT_ID
o$PROJECT_NUMBER
.name: helloworld-tcp-route meshes: - projects/$PROJECT_NUMBER/locations/global/meshes/sidecar-mesh rules: - action: destinations: - serviceName: projects/$PROJECT_NUMBER/locations/global/backendServices/tcp-helloworld-service matches: - address: '10.0.0.1/32' port: '10000'
Utilizza la specifica
tcp_route.yaml
per creare la risorsaTcpRoute
.gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global
Creare un client TCP con un proxy sidecar Envoy
Crea un modello di istanza e poi una VM con Envoy collegata a Cloud Service Mesh.
gcloud beta compute instance-templates create td-vm-client-template \ --image-family=debian-10 \ --image-project=debian-cloud \ --service-proxy=enabled,mesh=sidecar-mesh \ --metadata=startup-script="#! /bin/bash sudo apt-get update -y sudo apt-get install netcat -y"
gcloud compute instances create td-vm-client \ --zone=ZONE \ --source-instance-template td-vm-client-template
Accedi alla VM che hai creato.
gcloud compute ssh td-vm-client
Verifica la connettività ai servizi di test che hai creato utilizzando l'
netcat
utility.echo 'Hi TCP Service' | nc 10.0.0.1 10000
Il servizio di test dovrebbe restituire la frase Un saluto da TCP service. Dovresti anche riuscire a vedere il testo digitato fornito dal servizio netcat
in esecuzione sulla VM remota.
Passaggi successivi
- Per informazioni su come elencare le risorse di route associate a una risorsa
Mesh
oGateway
, consulta Elenca le risorseRoute
. Questa funzionalità è in anteprima.