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 IP10.0.0.100
service-b.example.com
tem o endereço IP10.0.0.101
service-c.example.com
tem o endereço IP10.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 aservice-a.example.com
. - O FR2 tem o endereço IP
10.0.0.101:80
, que está associado aservice-b.example.com
. - O FR3 tem o endereço IP
10.0.0.102:80
, que está associado aservice-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:
- O
service-a
faz primeiro uma pesquisa de DNS paraservice-b.example.com
para resolver o endereço IP deservice-b
. - O domínio é resolvido para
10.0.0.101
para corresponder ao endereço IP configurado da regra de encaminhamento deservice-b
. - 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.