Configurar o roteamento de tráfego TCP
Neste guia, demonstramos como usar o Cloud Service Mesh para rotear o tráfego para serviços que processam o tráfego TCP. Esses serviços incluem bancos de dados, serviços VOIP e plataformas de gerenciamento, que esperam receber tráfego TCP em portas ou intervalos de porta específicos.
Este guia se aplica à implantação com as APIs mais antigas. Se você estiver usando as novas
APIs de roteamento de serviço, que estão em visualização, consulte a
configuração do Cloud Service Mesh para serviços TCP com um recurso TCPRoute
.
Use este guia para fazer o seguinte:
- Configure um serviço que represente uma coleção de back-ends ou endpoints idênticos que aceitam solicitações de TCP dos clientes.
- Configure um mapa de regras de roteamento para que os proxies do Envoy configurados pela Cloud Service Mesh possam enviar solicitações TCP.
Os diagramas a seguir mostram como o roteamento TCP funciona para instâncias de máquina virtual (VM) e grupos de endpoints de rede (NEGs, na sigla em inglês), respectivamente.
Preparação
- Este guia se baseia no guia de preparação Envoy para malha de serviço e pressupõe que você já tenha uma compreensão básica do funcionamento do Cloud Service Mesh.
- O guia se concentra em aspectos da configuração do Cloud Service Mesh que são diferentes ao configurar os serviços e o roteamento para o tráfego TCP.
- Para este guia, é necessário ter configurado um grupo gerenciado de instâncias (MIG, na sigla em inglês) ou NEG.
Configurar recursos de balanceamento de carga
Siga as etapas abaixo para configurar os recursos de balanceamento de carga.
Crie uma verificação de integridade TCP
Configurar com VMs
Se você estiver configurando MIGs, use o seguinte comando para criar uma verificação
de integridade global. Substitua PORT
pelo número da porta
TCP que esta verificação de integridade monitora:
gcloud compute health-checks create tcp td-vm-health-check \ --global \ --port=PORT
Configurar com NEGs
Se estiver configurando NEGs, use o seguinte comando para criar uma verificação de integridade:
gcloud compute health-checks create tcp td-gke-health-check \ --use-serving-port
Para saber mais sobre verificações de integridade, consulte:
- Como criar verificações de integridade na documentação do Cloud Load Balancing
gcloud compute health-checks create tcp
na referência do comandogcloud
Criar uma regra de firewall para a verificação de integridade
Essa regra permite que as verificações de integridade dos verificadores do Google Cloud alcancem seus back-ends.
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
Para mais informações sobre regras de firewall para verificações de integridade, consulte:
- Regras de firewall para verificações de integridade na documentação do Cloud Load Balancing
gcloud compute firewall-rules create
na referência do comandogcloud
(inclui orientação paraTAGS
)
Criar um serviço de back-end para back-ends TCP
A configuração do serviço de back-end para TCP com o Cloud Service Mesh é um pouco diferente da configuração para HTTP. As etapas a seguir capturam essas diferenças.
Configurar com VMs
Se você estiver configurando MIGs, use o seguinte comando para criar um serviço de back-end e adicionar a verificação de integridade:
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
A etapa final para configurar o serviço de back-end é adicionar os back-ends. Como essa etapa é a configuração padrão do Cloud Service Mesh, ou seja, nada específico para serviços baseados em TCP, ela não é mostrada aqui. Para mais informações, consulte Criar o serviço de back-end no guia de configuração das VMs do Compute Engine com implantação automática do Envoy.
Configurar com NEGs
Se estiver configurando NEGs, use os seguintes comandos para criar um serviço de back-end e associar a verificação de integridade a esse serviço:
gcloud compute backend-services create td-gke-service \ --global \ --health-checks=td-gke-health-check \ --protocol=TCP \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
A etapa final para configurar o serviço de back-end é adicionar o grupo de back-end. Como essa etapa é a configuração padrão do Cloud Service Mesh, ou seja, nada específico para serviços baseados em TCP, ela não é mostrada aqui. Para mais informações, consulte Criar o serviço de back-end no guia de configuração dos pods do GKE com injeção automática do Envoy.
Configurar o roteamento para seu serviço de back-end baseado em TCP
Nesta seção, mostramos como criar um proxy TCP de destino global e uma regra de encaminhamento global. Esses recursos permitem que os aplicativos enviem tráfego para os back-ends com os serviços de back-end recém-criados.
Considere o seguinte:
- Sua regra de encaminhamento precisa ter o esquema de balanceamento de carga
INTERNAL_SELF_MANAGED
O endereço IP virtual (VIP, na sigla em inglês) e a porta que você configura na regra de encaminhamento são o VIP e a porta que seus aplicativos usam ao enviar tráfego para seus serviços TCP. É possível escolher o VIP de uma das suas sub-redes. O Cloud Service Mesh usa esse VIP e essa porta para corresponder solicitações de clientes a um determinado serviço de back-end.
Para informações sobre como as solicitações de cliente são correspondidas aos serviços de back-end, consulte Descoberta de serviços.
gcloud
Use o seguinte comando para criar o proxy TCP de destino: substitua
BACKEND_SERVICE
pelo nome do serviço de back-end criado na etapa anterior. No exemplo a seguir, usamostd-tcp-proxy
como o nome do proxy TCP de destino, mas é possível escolher um nome que atenda às suas necessidades.gcloud compute target-tcp-proxies create td-tcp-proxy \ --backend-service=BACKEND_SERVICE
Crie a regra de encaminhamento. A regra de encaminhamento especifica o VIP e a porta usados ao corresponder solicitações de clientes a um determinado serviço de back-end. Para mais informações, consulte
gcloud compute forwarding-rules create
na referência do comandogcloud
.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
Neste ponto, o Cloud Service Mesh está configurado para balancear a carga do tráfego do VIP especificado na regra de encaminhamento dos back-ends.
Solução de problemas
Se os aplicativos estiverem tentando enviar solicitações para os serviços baseados em TCP, faça o seguinte:
- Confirme se a porta de verificação de integridade TCP corresponde à porta em que o aplicativo TCP espera receber o tráfego da verificação de integridade.
- Confirme se o nome da porta do serviço de back-end corresponde ao especificado no grupo de instâncias.
A seguir
- Para conferir as outras etapas no processo de configuração, consulte Preparar-se para configurar o Cloud Service Mesh com o Envoy.
- Para encontrar informações gerais de solução de problemas do Cloud Service Mesh, consulte Solução de problemas de implantações que usam o Envoy.