Resolução de nomes DNS

Este documento aplica-se 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 a regra de encaminhamento está associada a um serviço. O documento também descreve como planear e configurar o DNS para uma comunicação de serviço a serviço numa malha de serviço do Cloud Service Mesh.

Considere este exemplo, no qual existem três serviços, service-a, service-b e service-c, que comunicam entre si. Os programadores usam frequentemente nomes de domínio totalmente qualificados no respetivo código para comunicação entre serviços. Se o seu nome de domínio for example.com, os três serviços podem ser representados da seguinte forma:

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

Quando configura recursos do Cloud Service Mesh para criar uma malha de serviços, 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 intercetado por um proxy sidecar do Envoy, o endereço IP de destino tem de corresponder ao endereço IP associado à regra de encaminhamento. Por conseguinte, tem de aprovisionar um endereço IP para cada serviço. Por 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 da Cloud Service Mesh tem três regras de encaminhamento, FR1, FR2 e FR3, cada uma a usar a porta 80:

  • O FR1 tem o endereço IP 10.0.0.100:80, que está associado a service-a.example.com.
  • O FR2 tem o endereço IP 10.0.0.101:80, que está associado a service-b.example.com.
  • O 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 através do nome do domínio totalmente qualificado (FQDN) service-b.example.com, ocorrem três situações:

  1. O service-a faz primeiro uma pesquisa de 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 corresponder ao endereço IP configurado da regra de encaminhamento de service-b.
  3. O proxy Envoy já consegue intercetar o tráfego e encaminhá-lo para o serviço de back-end que tem back-ends do service-b, quer sejam NEGs ou MIGs.

Pode configurar uma zona privada gerida do Cloud DNS para alojar os registos de recursos dos seus serviços.