Resolución de nombres de DNS
Este documento se aplica a Cloud Service Mesh con Envoy y a las APIs de balanceo de carga anteriores, que incluyen reglas de reenvío.
En este documento se explica la relación entre la dirección IP virtual de una regla de reenvío y cómo se asocia la regla de reenvío con un servicio. El documento también describe cómo planificar y configurar el DNS para la comunicación entre servicios en una malla de servicios de Cloud Service Mesh.
En este ejemplo, hay tres servicios, service-a
, service-b
y service-c
, que se comunican entre sí. Los desarrolladores suelen usar nombres de dominio completos en su código para la comunicación entre servicios. Si el nombre de tu dominio es example.com, los tres servicios podrían representarse de la siguiente manera:
service-a.example.com
service-b.example.com
service-c.example.com
Cuando configuras recursos de Cloud Service Mesh para crear una malla de servicios, configuras una regla de reenvío para cada uno de los servicios. Una regla de reenvío representa el par IP:Port
del servicio de destino. Para que un proxy sidecar de Envoy intercepte el tráfico de salida, la dirección IP de destino debe coincidir con la dirección IP asociada a la regla de reenvío. Por lo tanto, debes aprovisionar una dirección IP para cada servicio. Por ejemplo:
service-a.example.com
tiene la dirección IP10.0.0.100
.service-b.example.com
tiene la dirección IP10.0.0.101
.service-c.example.com
tiene la dirección IP10.0.0.102
.
La configuración de Cloud Service Mesh correspondiente tiene tres reglas de reenvío (FR1, FR2 y FR3), cada una de las cuales usa el puerto 80
:
- FR1 tiene la dirección IP
10.0.0.100:80
, que está asociada aservice-a.example.com
. - FR2 tiene la dirección IP
10.0.0.101:80
, que está asociada aservice-b.example.com
. - FR3 tiene la dirección IP
10.0.0.102:80
, que está asociada aservice-c.example.com
.
Cuando service-a
invoca service-b
mediante el nombre de dominio completo (FQDN)
service-b.example.com
, ocurren tres cosas:
service-a
primero realiza una búsqueda de DNS deservice-b.example.com
para resolver la dirección IP deservice-b
.- El dominio se resuelve en
10.0.0.101
para que coincida con la dirección IP configurada de la regla de reenvío deservice-b
. - El proxy de Envoy ahora puede interceptar el tráfico y enrutarlo al servicio de backend que tiene los backends de
service-b
, ya sean NEGs o MIGs.
Puedes configurar una zona privada gestionada de Cloud DNS para alojar los registros de recursos de tus servicios.