Proxies de destino para o Traffic Director

Ao configurar o Traffic Director, um dos recursos que você configurar será o proxy de destino.

No contexto do Traffic Director, os proxies de destino servem a dois propósitos principais:

  1. Eles têm um tipo específico. Esse tipo é usado para que os clientes do Traffic Director saibam qual protocolo usar ao abrir uma conexão aos back-ends/endpoints associados a um serviço.

  2. Eles combinam com outros recursos (por exemplo, regra 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. Geralmente, as seleções inválidas ficam ocultas na interface do usuário ou são rejeitadas pela API.

Os tipos de proxy de destino correspondem a diferentes protocolos de solicitação

O Traffic Director gera configurações diferentes para os clientes com base no tipo de proxy de destino que você configura. Quando você configura um tipo diferente de proxy de destino, o cliente usa um protocolo de solicitação específico.

  • Proxies HTTP de destino: os clientes do Traffic Director iniciarão conexões HTTP
  • Proxies gRPC de destino: os clientes do Traffic Director iniciarão conexões gRPC
  • Proxies TCP de destino: os clientes do Traffic Director iniciarão 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 ao abordar 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 erros de configuração, o Traffic Director permite criar mapas de regra de roteamento que se pareçam com o seguinte:

  • 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)

As verificações de integridade e os grupos de back-end não são exibidos na lista acima.

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.

Se você estiver usando a interface de linha de comando gcloud ou as APIs, será necessário configurar o proxy de destino explicitamente.

Processamento de tráfego ao usar um proxy HTTP de destino

Quando você configura serviços baseados em HTTP, cada instância de serviço geralmente tem um proxy Envoy implantado em conjunto. Esse proxy Envoy é configurado pelo Traffic Director, que faz parte do seu plano de dados da malha de serviço e processa o tráfego da maneira a seguir.

O proxy Envoy recebe a solicitação de saída e compara o IP e a porta de destino da solicitação com o IP e a porta configurados em cada regra de encaminhamento que faz referência a um proxy HTTP 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 HTTP de destino.

Processamento de tráfego ao 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 em conjunto. Esse proxy Envoy é configurado pelo Traffic Director, que faz parte do seu plano de dados da malha de serviço e processa o tráfego da maneira a seguir.

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

Processamento de tráfego ao usar o 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, ela é configurada pelo Traffic Director, que faz parte do seu plano de dados da malha de serviço e processa o tráfego da maneira a seguir.

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

Como configurar a interceptação de tráfego para proxies de gateway e intermediários

Em uma malha de serviço, você normalmente tem o seguinte:

  • Cada uma delas tem um proxy secundário dedicado da Envoy ou uma biblioteca gRPC.
    • Se você estiver usando o Envoy, as instâncias de serviços serão configuradas para interceptar e redirecionar solicitações de saída para o proxy Envoy.
  • O proxy Envoy ou a biblioteca gRPC manipula solicitações de saída.

Mas também é possível usar o Traffic Director para configurar um gateway ou um proxy intermediário. Nesta configuração, o proxy Envoy fica separado das instâncias de serviço. Ele detecta solicitações de entrada em uma porta e processa solicitações quando as recebe.

Para esse tipo de configuração, não é necessário configurar a interceptação ou o redirecionamento. Em vez disso, basta ativar a sinalização --proxy-bind no proxy HTTP de destino. Isso configura a interceptação de tráfego de entrada e faz com que o proxy Envoy ouça solicitações de entrada no endereço IP e na porta (que são configurados na regra de encaminhamento).

Lembre-se de que a regra de encaminhamento faz referência a um proxy de destino. Então, se você ativar --proxy-bind em um proxy HTTP de destino, o proxy detectará o endereço IP e a porta da regra de encaminhamento que faz referência a esse proxy HTTP de destino.

Observe o seguinte:

  • Se estiver usando o Traffic Director para uma malha de serviço, você não precisará usar --proxy-bind porque os proxies secundários geralmente recebem e encaminham o tráfego de saída.
  • A sinalização --proxy-bind não está disponível para proxies gRPC de destino.

Recursos de proxy de destino

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

No entanto, é possível usar os comandos gcloud a seguir para receber informações sobre um proxy de destino:

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 as seguintes páginas:

gcloud SDK

Para a ferramenta de linha de comando gcloud, consulte as seguintes páginas:

A seguir

Veja mais informações em: