Regras de encaminhamento do Cloud Service Mesh

Este documento se aplica somente ao Cloud Service Mesh com as APIs de balanceamento de carga. É altamente recomendável usar as APIs de roteamento de serviço para implantar o Cloud Service Mesh.

O Cloud Service Mesh usa a regra de encaminhamento para determinar o proxy de destino para qual o tráfego da malha será roteado.

Cada regra de encaminhamento fornece um único endereço IPv4 global para um serviço. É possível usar esse endereço para criar registros DNS internos para o serviço (por exemplo, usando uma zona particular gerenciada do Cloud DNS). Os filtros de metadados na regra de encaminhamento especificam os critérios para os quais um proxy secundário compatível com xDS recebe a configuração.

No plano de controle do Cloud Service Mesh, a regra de encaminhamento interna, autogerenciada e global roteia o tráfego por endereço IP, porta e protocolo para um proxy de destino. O proxy de destino aponta para um mapa de URLs que contém regras que determinam o destino do tráfego. O mapa de URL também especifica o serviço de back-end padrão. Este serviço de back-end especifica uma verificação de integridade e determina o back-end apropriado, como um grupo de instâncias gerenciadas (MIG) que contém instâncias de máquina virtual (VM) ou um grupo de endpoints da rede (NEG) que contém pods de back-end do Google Kubernetes Engine (GKE).

O diagrama a seguir mostra como uma regra de encaminhamento se encaixa na arquitetura do Cloud Service Mesh.

Regra de encaminhamento do Cloud Service Mesh destacada.
Regra de encaminhamento do Cloud Service Mesh destacada (clique para ampliar)

Propriedades da regra de encaminhamento

Um recurso de regra de encaminhamento contém as propriedades a seguir que se aplicam ao Cloud Service Mesh. Essa regra processa o tráfego que corresponde ao endereço IP, protocolo e número de porta do destino.

Um endereço IP 0.0.0.0 em uma regra de encaminhamento é uma das opções ao usar o Cloud Service Mesh. Um endereço IP 0.0.0.0 significa qualquer endereço IP.

  • Com uma implantação de proxy, um endereço IP 0.0.0.0 permite que um proxy corresponda a qualquer tráfego de entrada, se nenhuma outra correspondência específica for encontrada.

  • Com uma implantação sem proxy, um endereço IP 0.0.0.0 fornece uma maneira de especificar que um endereço IP não é necessário. Veja mais detalhes sobre o uso de endereços IP 0.0.0.0 com um proxy gRPC de destino.

A tabela a seguir descreve as propriedades da regra de encaminhamento em mais detalhes.

Propriedade Obrigatório Descrição
name

O nome da regra de encaminhamento.

O nome precisa ser exclusivo neste projeto, ter de 1 a 63 caracteres e corresponder à expressão regular: [a-z]([-a-z0-9]*[a-z0-9])?

Isso significa que o primeiro caractere precisa ser uma letra minúscula e os seguintes precisam ser um traço, uma letra minúscula ou um dígito, exceto o último caractere, que não pode ser um traço.

IPAddress

Um dos seguintes: 0.0.0.0 ou 127.0.0.1, ou qualquer endereço RFC 1918.

Os endereços IP das regras de encaminhamento do Cloud Service Mesh não precisam corresponder a intervalos de endereços IP de sub-redes na rede de nuvem privada virtual (VPC). Para uma determinada rede VPC, endereço IP e porta, você pode ter apenas uma regra de encaminhamento interna e autogerenciada.

Por exemplo, na mesma rede VPC, não é possível criar duas regras de encaminhamento que usem o endereço IP 0.0.0.0 e a porta 80.

IPAddress com um proxy gRPC de destino

Uma regra de encaminhamento que referencie um proxy gRPC de destino com o campo validateForProxyless definido como TRUE e seu endereço IP definido como 0.0.0.0.

Um cliente gRPC que usa o esquema xds não realiza uma busca DNS para resolver o nome do host no URI do canal. Em vez disso, esse cliente resolve o hostname[:port] no URI de destino enviando uma solicitação do serviço de descoberta de listener (LDS, na sigla em inglês) para o Cloud Service Mesh. Não há busca de DNS envolvida, e uma entrada DNS do nome do host não é necessária.

Como resultado, o Cloud Service Mesh usa o endereço IP 0.0.0.0 e a porta (padrão 80) especificada no URI para pesquisar a regra de encaminhamento. Em seguida, o Cloud Service Mesh procura uma regra de host correspondente no mapa de URL do proxy de destino referenciado pela regra de encaminhamento.

target

O proxy de destino para o qual esta regra de encaminhamento direciona o tráfego. O Cloud Service Mesh oferece suporte a target-http-proxy, target-https-proxy e target-grpc-proxy.

Quando você usa o Console do Google Cloud para configurar a regra de encaminhamento, o proxy de destino é configurado automaticamente. Quando você usa a CLI do Google Cloud ou a API, o proxy de destino precisa existir antes de criar sua regra de encaminhamento. É possível usar mais de uma regra de encaminhamento com um determinado proxy.

IPProtocol O tipo de protocolo correspondente a essa regra de encaminhamento. O único valor aceito é TCP.
loadBalancingScheme Especifica como a regra de encaminhamento é usada. O valor válido do Cloud Service Mesh é INTERNAL_SELF_MANAGED.
portRange

Uma porta ou um intervalo de portas mesclado por um traço.

Os pacotes do protocolo especificado enviados para essas portas são encaminhados ao back-end apropriado. É possível especificar um único número de um intervalo, por exemplo, 80 ou 80-8080.

Para uma determinada rede VPC, endereço IP e porta, você pode ter apenas uma regra de encaminhamento interna e autogerenciada. Por exemplo, na mesma rede VPC, não é possível criar duas regras de encaminhamento que usem o endereço IP 0.0.0.0 e a porta 80.

Nos serviços do gRPC sem proxy, a porta na regra de encaminhamento é correspondida à porta especificada no URI que um aplicativo gRPC usa para se conectar a um serviço. Se uma porta não for especificada no URI, 80 será a porta padrão.

network

Especifica a rede VPC em que as VMs do Goole Cloud que executam proxies do Envoy estão localizadas.

Os proxies Envoy leem a configuração do Cloud Service Mesh definida para a mesma rede em que os proxies são implantados. É possível usar a rede VPC denominada default ou uma rede personalizada.

O Cloud Service Mesh oferece suporte a balanceamento de carga apenas para clientes na rede do Google Cloud. Especifique o nome da rede na regra de encaminhamento. O peering da rede VPC não é compatível.

Adicionar uma regra de encaminhamento global

Para saber como configurar uma regra de encaminhamento na configuração geral do Cloud Service Mesh com as APIs de balanceamento de carga, consulte:

A seguir