Visão geral dos mapas de regras de roteamento do Traffic Director

Neste documento, descrevemos os mapas de regras de roteamento e como eles gerenciam o tráfego nas implantações do Traffic Director.

Um mapa de regras de roteamento consiste em:

  • Uma regra de encaminhamento que faz referência a um proxy de destino
  • Um proxy de destino que referencia um mapa de URL
  • Um mapa de URL que contém várias regras de roteamento

Quando você cria e configura esses recursos para o Traffic Director, o Traffic Director usa os valores para criar a configuração que ele envia ao seu plano de dados, incluindo clientes xDS, como proxies Envoy e aplicativos gRPC sem proxy. O plano de dados processa o tráfego de acordo com essa configuração.

Uma regra de encaminhamento faz referência a um proxy de destino e tem um endereço IP e uma porta. Para implantações do Traffic Director, o esquema de balanceamento de carga da regra de encaminhamento precisa ser definido como INTERNAL_SELF_MANAGED.

O proxy de destino, por sua vez, referencia um mapa de URL. Esses três recursos se combinam para formar um mapa de regras de roteamento.

Uma regra de encaminhamento que referencie um proxy gRPC de destino com o campo validateForProxyless definido como TRUE precisa ter seu endereço IP definido como 0.0.0.0. Quando validateForProxyless é definido como TRUE, as configurações que especificam um endereço IP diferente de 0.0.0.0 são rejeitadas.

O mapa de regras de roteamento define como o tráfego passa de clientes para servidores dentro de uma malha de serviço.

Tipos de proxy de destino compatíveis

O Traffic Director é compatível com os seguintes tipos de proxy de destino:

  • Proxy HTTP de destino, que você configura quando os clientes e servidores enviam ou recebem tráfego HTTP ou HTTP/2.
  • Proxy gRPC de destino, que você configura quando os clientes e servidores enviam ou recebem tráfego gRPC. Os proxies do gRPC de destino contêm um campo validateForProxyless, que geralmente é definido como TRUE quando você está implantando serviços gRPC sem proxy.

Roteamento de tráfego com o Traffic Director

Quando você usa o Traffic Director com proxies de arquivo secundário do Envoy, as solicitações de cliente são roteadas da seguinte maneira:

  • A solicitação é interceptada pela pilha da rede e redirecionada para seu proxy de arquivo secundário do Envoy.
  • O proxy secundário do Envoy analisa o endereço IP e a porta da solicitação.
  • O endereço IP e o par de portas verificados em relação ao IP e à porta especificados em todas as regras de encaminhamento que têm o esquema de balanceamento de carga definido como INTERNAL_SELF_MANAGED.
  • Se uma regra de encaminhamento com um endereço IP e uma porta correspondentes for encontrada, o Envoy verificará o proxy HTTP ou gRPC de destino ao qual a regra de encaminhamento faz referência.
  • O Envoy verifica o mapa de URL ao qual o proxy de destino faz referência.
  • O Envoy encaminha a solicitação de acordo com as regras especificadas no mapa de URL.

Esse comportamento é diferente para aplicativos gRPC sem proxy. Ao configurar um cliente gRPC, você especifica o URI de destino do serviço que o cliente precisa entrar em contato. Esse URI usa o esquema do resolvedor de nomes xds e o formato hostname:port, por exemplo xds:///myservice:8080.

Quando o cliente gRPC sem proxy se conecta ao Traffic Director, ele envia as informações correspondentes ao serviço da seguinte maneira:

  • O Traffic Director procura regras de encaminhamento com o esquema de balanceamento de carga definido como INTERNAL_SELF_MANAGED para encontrar regras de encaminhamento cuja porta corresponde à porta especificada no URI de destino.
  • O Traffic Director encontra o proxy de gRPC ou HTTP de destino para cada uma dessas regras de encaminhamento.
  • O Traffic Director encontra os mapas de URL referenciados por esses proxies HTTP ou HTTP de destino.
  • O Traffic Director verifica as regras de host no mapa de URL, que também tem o formato hostname[:port] e procura uma correspondência.
  • Quando uma correspondência é encontrada, o Traffic Director retorna regras de roteamento e informações de serviço ao cliente gRPC.

Se mais de uma correspondência for encontrada, o comportamento será indefinido e poderá causar um comportamento imprevisível. Isso geralmente acontece quando as seguintes condições são atendidas:

  • O mesmo nome de host é usado em vários mapas de URLs.
  • Várias regras de encaminhamento com o esquema de balanceamento de carga INTERNAL_SELF_MANAGED especificam a mesma porta.

Por esse motivo, recomendamos que você não reutilize o mesmo nome de host em vários mapas de URL referenciados por regras de encaminhamento que especificam a mesma porta.

A seguir