Resolução de nomes DNS

Este documento se aplica ao Cloud Service Mesh com o Envoy e às APIs de balanceamento de carga mais antigas, que incluem regras de encaminhamento.

Neste documento, explicamos a relação entre o IP virtual de uma regra de encaminhamento endereço IP e como a regra de encaminhamento está associada a um serviço. O documento também descreve como planejar e configurar o DNS para uma comunicação de serviço a serviço uma malha de serviço do Cloud Service Mesh.

Considere este exemplo, em que há três serviços, service-a, service-b e service-c, que se comunicam entre si. Desenvolvedores com frequência usar nomes de domínio totalmente qualificados no código para serviço a serviço comunicação. Se o nome de domínio for example.com, os três serviços poderão ser representadas como:

  • service-a.example.com
  • service-b.example.com
  • service-c.example.com

Ao configurar os recursos do Cloud Service Mesh para criar uma malha de serviço, você configura uma regra de encaminhamento para cada um dos serviços. Uma regra de encaminhamento representa o par IP:Port do serviço de destino. Para que o tráfego de saída seja interceptado por um proxy sidecar do Envoy, o endereço IP de destino precisa corresponder ao endereço IP associado à regra de encaminhamento. Portanto, você precisa provisionar um endereço IP para cada serviço. Exemplo:

  • service-a.example.com tem o endereço IP 10.0.0.100
  • service-b.example.com tem o endereço IP 10.0.0.101
  • service-c.example.com tem o endereço IP 10.0.0.102

A configuração correspondente do Cloud Service Mesh tem três regras de encaminhamento: FR1, FR2 e FR3, cada um usando a porta 80:

  • FR1 tem o endereço IP 10.0.0.100:80, que está associado a service-a.example.com.
  • FR2 tem o endereço IP 10.0.0.101:80, que está associado a service-b.example.com.
  • FR3 tem o endereço IP 10.0.0.102:80, que está associado a service-c.example.com.

Quando service-a invoca service-b usando o nome de domínio totalmente qualificado (FQDN, na sigla em inglês) service-b.example.com, três coisas acontecem:

  1. service-a primeiro executa uma busca DNS para service-b.example.com para resolver o endereço IP de service-b.
  2. O domínio é resolvido para 10.0.0.101 para que corresponda ao endereço IP configurado da regra de encaminhamento de service-b.
  3. O proxy do Envoy agora pode interceptar o tráfego e roteá-lo para o serviço de back-end que tem back-ends de service-b, sejam eles NEGs ou MIGs.

É possível configurar uma zona particular gerenciada do Cloud DNS para hospedar os registros de recursos dos serviços.