Configurar servicios TCP
En esta guía se explica cómo configurar Cloud Service Mesh para usar servicios TCP y recursos TCPRoute.
Cloud Service Mesh con servicios TCP y TCPRoute es similar a la configuración del proxy sidecar de Envoy con servicios HTTP. Las excepciones son que el servicio de backend proporciona un servicio TCP y el enrutamiento se basa en parámetros TCP/IP en lugar de en el protocolo HTTP.
Mesh con recurso TCPRoute (haz clic en la imagen para ampliarla)Antes de empezar
Asegúrate de completar las tareas descritas en el artículo Preparar la configuración con Envoy y cargas de trabajo sin proxy.
Configurar el recurso Mesh
- En un archivo llamado - mesh.yaml, cree la especificación de recursos- mesh.- name: sidecar-mesh 
- Usa el archivo - mesh.yamlpara crear el recurso- mesh.- gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global 
Configurar el servidor TCP
Esta parte de la guía no es específica de las nuevas APIs y utiliza los recursos de servicio backend, comprobación de estado y MIG.
Para hacer una demostración, crea un servicio de backend con VMs autoescaladas mediante grupos de instancias gestionados que sirvan un servicio TCP de prueba en el puerto 10000.
- Crea una plantilla de instancia de VM de Compute Engine con un servicio de prueba en el puerto - 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 &" 
- Crea un grupo de instancias gestionadas basado en la plantilla. - gcloud compute instance-groups managed create tcp-td-mig-us-east1 \ --zone=ZONE \ --size=1 \ --template=tcp-td-vm-template 
- Define el puerto 10000 en los puertos con nombre del grupo de instancias gestionado que has creado. - gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1 
 --zone=ZONE
 --named-ports=tcp:10000
- Crea una comprobación del estado. - gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000 
- Crea una regla de cortafuegos para permitir las conexiones de comprobación del estado entrantes a las instancias de tu red. - 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 servicio de backend global con un esquema de balanceo de carga - INTERNAL_SELF_MANAGEDy asocia la comprobación de estado al servicio de backend. En el ejemplo se usa el grupo de instancias gestionado que ejecuta el servicio TCP de muestra que has creado anteriormente.- gcloud compute backend-services create tcp-helloworld-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --protocol=TCP \ --health-checks tcp-helloworld-health-check
- Añade el grupo de instancias gestionado al servicio de backend. - gcloud compute backend-services add-backend tcp-helloworld-service \ --instance-group tcp-td-mig-us-east1 \ --instance-group-zone=ZONE \ --global 
Configurar el enrutamiento con TCPRoute
En esta sección, configurará el enrutamiento.
- En un archivo llamado - tcp_route.yaml, crea la especificación- TcpRoute.- Puedes usar - $PROJECT_IDo- $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'
- Con la especificación - tcp_route.yaml, crea el recurso- TcpRoute.- gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global 
Crear un cliente TCP con un sidecar de Envoy
- Crea una plantilla de instancia y, a continuación, una VM con Envoy que esté conectada 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 
- Inicia sesión en la VM que has creado. - gcloud compute ssh td-vm-client 
- Verifica la conectividad con los servicios de prueba que has creado con la utilidad - netcat.- echo 'Hi TCP Service' | nc 10.0.0.1 10000 
El servicio de prueba debe devolver la frase Hello from TCP
service. También deberías ver el texto que escribas devuelto por el servicio netcat que se ejecuta en la máquina virtual remota.
Siguientes pasos
- Para obtener información sobre cómo enumerar los recursos de ruta asociados a un recurso MeshoGateway, consulta Enumerar recursos deRoute.