Configure serviços TCP
Este guia explica como configurar a Cloud Service Mesh para usar serviços TCP e recursos TCPRoute.
A Cloud Service Mesh com serviços TCP e TCPRoute é semelhante à configuração do proxy sidecar do Envoy com serviços HTTP. As exceções são que
o serviço de back-end fornece um serviço TCP e o encaminhamento baseia-se em parâmetros TCP/IP, em vez de no protocolo HTTP.
Mesh recurso com o recurso TCPRoute (clique para aumentar)Antes de começar
Certifique-se de que conclui as tarefas descritas no artigo Prepare-se para a configuração com o Envoy e cargas de trabalho sem proxy.
Configure o recurso Mesh
- Num ficheiro denominado - mesh.yaml, crie a especificação do recurso- mesh.- name: sidecar-mesh 
- Use o ficheiro - mesh.yamlpara criar o recurso- mesh.- gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global 
Configure o servidor TCP
Esta parte do guia não é específica das novas APIs e usa o serviço de back-end, a verificação de estado e os recursos do MIG existentes.
Para fins de demonstração, cria um serviço de back-end com VMs com escala automática
usando grupos de instâncias geridas
que servem um serviço TCP de teste na porta 10000.
- Crie um modelo de instância de VM do Compute Engine com um serviço de teste na 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 &" 
- Crie um grupo de instâncias gerido com base no modelo. - gcloud compute instance-groups managed create tcp-td-mig-us-east1 \ --zone=ZONE \ --size=1 \ --template=tcp-td-vm-template 
- Defina as portas com nome no grupo de instâncias geridas criado para a porta 10000. - gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1 
 --zone=ZONE
 --named-ports=tcp:10000
- Crie uma verificação de funcionamento. - gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000 
- Crie uma regra de firewall para permitir ligações de verificações de estado de funcionamento de entrada a instâncias na sua rede. - 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 
- Crie um serviço de back-end global com um esquema de balanceamento de carga de - INTERNAL_SELF_MANAGEDe anexe a verificação de funcionamento ao serviço de back-end. O exemplo usa o grupo de instâncias gerido que executa o serviço TCP de exemplo que criou anteriormente.- gcloud compute backend-services create tcp-helloworld-service \ --global \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --protocol=TCP \ --health-checks tcp-helloworld-health-check
- Adicione o grupo de instâncias gerido ao serviço de back-end. - gcloud compute backend-services add-backend tcp-helloworld-service \ --instance-group tcp-td-mig-us-east1 \ --instance-group-zone=ZONE \ --global 
Configure o encaminhamento com o TCPRoute
Nesta secção, configura o encaminhamento.
- Num ficheiro denominado - tcp_route.yaml, crie a especificação- TcpRoute.- Pode usar o - $PROJECT_IDou 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'
- Usando a especificação - tcp_route.yaml, crie o recurso- TcpRoute.- gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global 
Crie um cliente TCP com um sidecar do Envoy
- Crie um modelo de instância e, em seguida, crie uma VM com o Envoy que esteja ligada à malha de serviço na nuvem. - 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 
- Inicie sessão na VM que criou. - gcloud compute ssh td-vm-client 
- Valide a conetividade aos serviços de teste que criou através do utilitário - netcat.- echo 'Hi TCP Service' | nc 10.0.0.1 10000 
O serviço de teste deve devolver a expressão Hello from TCP
service. Também deve conseguir ver qualquer texto que escreva devolvido pelo serviço netcat em execução na VM remota.
O que se segue?
- Para informações sobre como listar recursos de trajetos associados a um recurso MeshouGateway, consulte o artigo Liste recursosRoute.