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 IP 10.0.0.100.
  • service-b.example.com tiene la dirección IP 10.0.0.101.
  • service-c.example.com tiene la dirección IP 10.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 a service-a.example.com.
  • FR2 tiene la dirección IP 10.0.0.101:80, que está asociada a service-b.example.com.
  • FR3 tiene la dirección IP 10.0.0.102:80, que está asociada a service-c.example.com.

Cuando service-a invoca service-b mediante el nombre de dominio completo (FQDN) service-b.example.com, ocurren tres cosas:

  1. service-a primero realiza una búsqueda de DNS de service-b.example.com para resolver la dirección IP de service-b.
  2. El dominio se resuelve en 10.0.0.101 para que coincida con la dirección IP configurada de la regla de reenvío de service-b.
  3. 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.