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:

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 como TRUE 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?