Visão geral dos mapas de regras de roteamento
Neste documento, descrevemos os mapas de regras de roteamento e como eles gerenciam o tráfego nas implantações do Traffic Director que usam as APIs mais antigas. Se você estiver usando as novas APIs de roteamento de serviço, que estão em visualização, consulte a visão geral das novas APIs de roteamento de serviço.
Um mapa de regras de roteamento consiste no seguinte:
- Uma regra de encaminhamento que faz referência a um proxy de destino
- Um proxy de destino que faz referência a um mapa de URL
- Um mapa de URL contendo várias regras de roteamento
Quando você cria e configura esses recursos para o Traffic Director, os valores são usados para criar a configuração que é enviada a seu plano de dados, o que inclui 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,
faz referência a 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 da 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 HTTPS de destino, configurado quando clientes e servidores enviam ou recebem tráfego HTTPS. Isso é necessário ao configurar a segurança do serviço com proxies do Envoy.
- Proxy TCP de destino, que você configura quando os clientes e servidores enviam ou recebem tráfego TCP.
- 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 o campo
validateForProxyless
, que é definido comoTRUE
quando você implanta serviços gRPC sem proxy.
Roteamento de tráfego com proxies sidecar do Envoy
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 pilha de rede intercepta a solicitação e a redireciona para o proxy sidecar 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 for encontrada uma regra de encaminhamento com um endereço IP e uma porta correspondentes, o Envoy verificará o proxy HTTP ou gRPC de destino a que 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.
Para mais informações sobre como o tráfego é roteado com um proxy TCP de destino, consulte Como rotear o tráfego TCP com o Traffic Director.
Roteamento de tráfego com aplicativos gRPC sem proxy
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:///example.hostname: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 com a porta correspondente àquela especificada no URI de destino. - O Traffic Director encontra o proxy gRPC de destino ou o proxy HTTP de destino de cada uma dessas regras de encaminhamento.
- O Traffic Director encontra os mapas de URL a referenciados por esses proxies gRPC de destino ou proxies 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 duas condições a seguir 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 isso, 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
Para ter um controle preciso sobre como o tráfego é processado, consulte a Visão geral do gerenciamento de tráfego avançado.
Para saber mais sobre o Traffic Director, consulte a visão geral do Traffic Director.