Configurar serviços TCP
Neste guia, explicamos como configurar o Cloud Service Mesh para usar serviços TCP
e recursos TCPRoute
.
O 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 roteamento é baseado em parâmetros TCP/IP, e não
no protocolo HTTP.
Antes de começar
Conclua as tarefas descritas em Preparar para configurar com o Envoy e cargas de trabalho sem proxy.
Configurar o recurso Mesh
Em um arquivo chamado
mesh.yaml
, crie a especificação de recursomesh
.name: sidecar-mesh
Use o arquivo
mesh.yaml
para criar o recursomesh
.gcloud network-services meshes import sidecar-mesh \ --source=mesh.yaml \ --location=global
Configurar o servidor TCP
Esta parte do guia não é específica das novas APIs e usa recursos atuais de serviço de back-end, verificação de integridade e MIG.
Para fins de demonstração, crie um serviço de back-end com VMs com escalonamento automático usando grupos de instâncias gerenciadas que atendam a 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 o grupo gerenciado de instâncias 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 nomeadas no grupo gerenciado de instâncias criado como porta 10.000.
gcloud compute instance-groups set-named-ports tcp-td-mig-us-east1
--zone=ZONE
--named-ports=tcp:10000Crie uma verificação de integridade.
gcloud compute health-checks create tcp tcp-helloworld-health-check --port 10000
Crie uma regra de firewall para permitir conexões de verificação de integridade de entrada com 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_MANAGED
e anexe a verificação de integridade ao serviço de back-end. No exemplo, usamos o grupo de instâncias gerenciadas que executa o serviço TCP de amostra criado 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 gerenciadas 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 roteamento com TCPRoute
Nesta seção, você configura o roteamento.
Em um arquivo chamado
tcp_route.yaml
, crie a especificaçãoTcpRoute
.É possível usar
$PROJECT_ID
ou$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 recursoTcpRoute
.gcloud network-services tcp-routes import helloworld-tcp-route \ --source=tcp-route.yaml \ --location=global
Criar um cliente TCP com um sidecar do Envoy
Crie um modelo de instância e uma VM com o Envoy conectado ao 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
Faça login na VM que você criou.
gcloud compute ssh td-vm-client
Verifique a conectividade com os serviços de teste criados usando o utilitário
netcat
.echo 'Hi TCP Service' | nc 10.0.0.1 10000
O serviço de teste retornará a frase Hello from TCP
service. Você também verá todo o texto digitado pelo serviço netcat
em execução na VM remota.
A seguir
- Para saber como listar recursos de rota associados a um recurso
Mesh
ouGateway
, consulte Listar recursosRoute
. Esse recurso está na visualização.