Vista geral dos mapas de regras de encaminhamento
Este documento aplica-se apenas ao Cloud Service Mesh com as APIs de equilíbrio de carga. Recomendamos vivamente que use as APIs de encaminhamento de serviços.
Um mapa de regras de encaminhamento é composto pelo 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 URLs
- Um mapa de URLs que contém várias regras de encaminhamento
Quando cria e configura estes recursos para a Cloud Service Mesh, a Cloud Service Mesh usa os valores para criar a configuração que envia para o seu plano de dados, que inclui clientes xDS, como proxies Envoy e aplicações gRPC sem proxy. Em seguida, o plano de dados processa o tráfego de acordo com esta configuração.
Uma regra de encaminhamento faz referência a um proxy de destino e tem um endereço IP e uma porta.
Para implementações da Cloud Service Mesh, o esquema de balanceamento de carga da regra de encaminhamento tem de estar definido como INTERNAL_SELF_MANAGED
. Por sua vez, o proxy de destino
faz referência a um mapa de URLs. Estes três recursos combinam-se para formar um mapa de regras de encaminhamento.
Uma regra de encaminhamento que faça referência a um proxy gRPC de destino com o campo validateForProxyless
definido como TRUE
tem de ter o respetivo endereço IP definido como 0.0.0.0
. Quando validateForProxyless
está 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 encaminhamento define como o tráfego passa dos clientes para os servidores numa malha de serviços.
Tipos de proxy de destino suportados
O Cloud Service Mesh suporta os seguintes tipos de proxy de destino:
- Proxy HTTP de destino, que configura quando os clientes e os servidores enviam ou recebem tráfego HTTP ou HTTP/2.
- Proxy HTTPS de destino, que configura quando os clientes e os servidores enviam ou recebem tráfego HTTPS. Isto é necessário quando configura a segurança do serviço com proxies Envoy.
- Proxy TCP de destino, que configura quando os clientes e os servidores enviam ou recebem tráfego TCP.
- Proxy gRPC de destino, que configura quando os clientes e os servidores enviam ou recebem tráfego gRPC. Os proxies gRPC de destino contêm o campo
validateForProxyless
, que está definido comoTRUE
quando implementa serviços gRPC sem proxy.
Encaminhamento de tráfego com proxies sidecar do Envoy
Quando usa o Cloud Service Mesh com proxies sidecar do Envoy, os pedidos do cliente são encaminhados da seguinte forma:
- A pilha de rede interceta o pedido e redireciona-o para o proxy sidecar do Envoy.
- O proxy sidecar do Envoy analisa o endereço IP e a porta do pedido.
- O par de endereço IP e porta é verificado em relação ao endereço IP e à porta especificados em quaisquer regras de encaminhamento que tenham 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 procura o proxy HTTP de destino ou o proxy gRPC de destino ao qual a regra de encaminhamento faz referência.
- O Envoy verifica o mapa de URLs a que o proxy de destino faz referência.
- O Envoy encaminha o pedido de acordo com as regras especificadas no mapa de URLs.
Para obter informações sobre como o tráfego é encaminhado com um proxy TCP de destino, consulte o artigo Encaminhar tráfego TCP com a Cloud Service Mesh.
Encaminhamento de tráfego com aplicações gRPC sem proxy
Este comportamento é diferente para aplicações gRPC sem proxy. Quando configura um cliente gRPC, especifica o URI de destino para o serviço que o cliente precisa de contactar. Este 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 liga ao Cloud Service Mesh, o Cloud Service Mesh envia-lhe informações correspondentes ao serviço da seguinte forma:
- O Cloud Service Mesh procura regras de encaminhamento com o esquema de balanceamento de carga definido como
INTERNAL_SELF_MANAGED
para encontrar regras de encaminhamento cuja porta corresponda à porta especificada no URI de destino. - O Cloud Service Mesh encontra o proxy gRPC de destino ou o proxy HTTP de destino para cada uma destas regras de encaminhamento.
- O Cloud Service Mesh encontra os mapas de URL referenciados por estes proxies gRPC de destino ou proxies HTTP de destino.
- O Cloud Service Mesh verifica as regras de anfitrião no mapa de URLs, que também têm o formato
hostname[:port]
, e procura uma correspondência. - Quando é encontrada uma correspondência, o Cloud Service Mesh devolve regras de encaminhamento e informações de serviço ao cliente gRPC.
Se forem encontradas mais do que uma correspondência, o comportamento não está definido e pode levar a um comportamento imprevisível. Geralmente, isto acontece quando ambas as seguintes condições são cumpridas:
- O mesmo nome de anfitrião é usado em vários mapas de URLs.
- Várias regras de encaminhamento com o esquema de equilíbrio de carga
INTERNAL_SELF_MANAGED
especificam a mesma porta.
Por este motivo, recomendamos que não reutilize o mesmo nome do anfitrião em vários mapas de URLs referenciados por regras de encaminhamento que especifiquem a mesma porta.
O que se segue?
Para ter um controlo detalhado sobre a forma como o tráfego é processado, consulte a vista geral da gestão avançada de tráfego.
Para saber mais sobre a Cloud Service Mesh, consulte a vista geral da Cloud Service Mesh.