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.

Este documento explica a relação entre o endereço IP virtual de uma regra de encaminhamento e como ela está associada a um serviço. O documento também descreve como planejar e configurar o DNS para uma comunicação serviço a serviço em 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. Os desenvolvedores costumam usar nomes de domínio totalmente qualificados no código para comunicação de serviço a serviço. Se o nome do domínio for example.com, os três serviços poderão ser representados 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 uma 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.