Proxies de destino para o Cloud Service Mesh

Este documento se aplica apenas ao Cloud Service Mesh com as APIs de balanceamento de carga. É altamente recomendável usar as APIs de roteamento de serviço para implantar o Cloud Service Mesh.

Ao configurar o Cloud Service Mesh, um dos recursos configurados é o proxy de destino. No contexto do Cloud Service Mesh, os proxies de destino têm duas finalidades principais:

  • Definir o protocolo que os clientes do Cloud Service Mesh usam ao abrir uma conexão com os back-ends ou endpoints associados a um serviço.

  • Trabalhar com regras de encaminhamento e mapas de URL para criar um mapa de regras de roteamento O mapa de regras de roteamento fornece recursos adicionais, como regras de roteamento, dependendo do tipo de proxy de destino. As seleções inválidas ficam ocultas na interface do usuário ou são rejeitadas pela API.

Tipos de proxy de destino e protocolos de solicitação

O Cloud Service Mesh gera diferentes configurações para os clientes com base no tipo de proxy de destino configurado. Quando você configura um tipo de proxy de destino, o cliente do Cloud Service Mesh usa um protocolo de solicitação específico.

Proxy de destino Protocolo de solicitação
HTTPS Clientes iniciam conexões HTTPS
HTTP Clientes iniciam conexões HTTP
gRPC Clientes iniciam conexões gRPC
TCP Clientes iniciam conexões TCP

Você não precisa selecionar apenas um tipo. Por exemplo, o aplicativo pode usar HTTP ao abordar alguns serviços, mas usar TCP para outros serviços. Para esse caso de uso, você precisaria criar um proxy HTTP de destino e um proxy TCP de destino.

Combinações de recursos válidas em um mapa de regras de roteamento

Para evitar configurações incorretas, o Cloud Service Mesh só permite criar mapas de regras de roteamento semelhantes aos seguintes:

  • Regra de encaminhamento > proxy HTTPS de destino global > Mapa de URL > um ou mais serviços de back-end
  • Regra de encaminhamento > proxy HTTP de destino global > Mapa de URL > um ou mais serviços de back-end
  • Regra de encaminhamento > proxy gRPC de destino global > Mapa de URL > um ou mais serviços de back-end
  • Regra de encaminhamento > proxy TCP de destino global > um serviço de back-end

Se você estiver usando o console do Google Cloud para configurar um proxy HTTP de destino, esse proxy será definido implicitamente como parte da configuração do mapa de regras de roteamento. A configuração do proxy TCP ainda não é compatível com o Console do Google Cloud.

Se você estiver usando a CLI do Google Cloud ou as APIs, será necessário configurar explicitamente o proxy de destino.

Processamento de tráfego

As seções a seguir descrevem maneiras de lidar com o tráfego dependendo do tipo de proxy de destino que você usa.

Como usar um proxy HTTP ou HTTPS de destino

Quando você configura serviços baseados em HTTP ou HTTPS, cada instância de serviço geralmente tem um proxy Envoy implantado com ela. O Cloud Service Mesh configura esse proxy Envoy. Ele faz parte do seu plano de dados da malha de serviço e lida com o tráfego da maneira a seguir.

O proxy Envoy recebe a solicitação de saída. Em seguida, ele compara o endereço IP de destino da solicitação e a porta com o endereço IP e a porta configurados em cada regra de encaminhamento que se refere a um proxy HTTP ou HTTPS de destino. Se uma correspondência for encontrada, o proxy Envoy avaliará a solicitação de acordo com o mapa de URL correspondente do proxy de destino.

Como usar um proxy TCP de destino

Quando você configura serviços baseados em TCP, cada instância de serviço geralmente tem um proxy Envoy implantado junto com ela. O Cloud Service Mesh configura esse proxy Envoy. Ele faz parte do seu plano de dados da malha de serviço e lida com o tráfego da maneira a seguir.

O proxy Envoy recebe a solicitação de saída. Em seguida, ele compara o endereço IP de destino da solicitação e a porta com o endereço IP e a porta configurados em cada regra de encaminhamento que se refere a um proxy TCP. Cada regra de encaminhamento direciona o tráfego TCP para um proxy de destino que aponta para um serviço de back-end padrão. O serviço de back-end especifica uma verificação de integridade e determina o back-end apropriado.

Como usar um proxy gRPC de destino

Quando você configura serviços baseados em gRPC, geralmente suas instâncias de serviço não têm proxies Envoy. Em vez disso, o Cloud Service Mesh configura a biblioteca gRPC. A biblioteca faz parte do plano de dados da malha de serviço e processa o tráfego da seguinte maneira:

A biblioteca gRPC compara o hostname[:port] especificado no URI com as regras de host em todos os mapas de URL aos quais um proxy gRPC de destino faz referência. Se uma correspondência for encontrada, a biblioteca gRPC avalia a solicitação de acordo com as regras de caminho associadas à regra de host correspondente.

Recursos de proxy de destino

Para adicionar, excluir, listar e receber informações sobre proxies de destino, use a API REST ou a CLI gcloud.

Além disso, para receber informações sobre um proxy de destino, use os comandos gcloud a seguir:

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

APIs

Para descrições das propriedades e dos métodos disponíveis ao trabalhar com proxies de destino por meio da API REST, consulte os seguintes recursos compatíveis com o Cloud Service Mesh:

CLI da gcloud

Para a CLI do Google Cloud, consulte os seguintes recursos:

A seguir