DNS 名前解決

このドキュメントは、Envoy を使用する Cloud Service Mesh と、転送ルールを含む古い負荷分散 API に適用されます。

転送ルールの仮想 IP アドレスと、転送ルールがサービスに関連付けられる仕組みとの関係について説明します。また、Cloud Service Mesh サービス メッシュ内のサービス間通信用の DNS を計画して構成する方法についても概説します。

この例では、互いに通信する 3 つのサービス service-aservice-bservice-c を使用して説明します。デベロッパーは、サービス間通信のコードで完全修飾ドメイン名を使用することがよくあります。ドメイン名が example.com の場合、3 つのサービスは次のように表現されます。

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

Cloud Service Mesh リソースを構成してサービス メッシュを作成するときは、各サービスの転送ルールを構成します。転送ルールは、宛先サービスの IP:Port ペアを表します。下り(外向き)トラフィックが Envoy サイドカー プロキシによってインターセプトされるようにするには、宛先 IP アドレスが転送ルールに関連付けられた IP アドレスと一致している必要があります。したがって、サービスごとに IP アドレスをプロビジョニングする必要があります。例:

  • service-a.example.com には、IP アドレス 10.0.0.100 があります
  • service-b.example.com には、IP アドレス 10.0.0.101 があります
  • service-c.example.com に IP アドレス 10.0.0.102 があります

対応する Cloud Service Mesh の構成には、FR1、FR2、FR3 の 3 つの転送ルールがあり、それぞれポート 80 を使用します。

  • FR1 には IP アドレス 10.0.0.100:80 があり、service-a.example.com に関連付けられます。
  • FR2 には IP アドレス 10.0.0.101:80 があり、service-b.example.com に関連付けられます。
  • FR3 には IP アドレス 10.0.0.102:80 があり、service-c.example.com に関連付けられます。

service-a が完全修飾ドメイン名(FQDN)service-b.example.com を使用して service-b を呼び出すと、次の 3 つのことが発生します。

  1. まず、service-aservice-b.example.com の DNS ルックアップを実行して、service-b の IP アドレスを解決します。
  2. ドメインは、service-b の転送ルールに構成されている IP アドレスと一致するように、10.0.0.101 に解決されます。
  3. これで、Envoy プロキシは、トラフィックをインターセプトして service-b のバックエンド(NEG、MIG のいずれでも)を持つバックエンド サービスにトラフィックを転送できるようになりました。

Cloud DNS 限定公開マネージド ゾーンを構成して、サービスのリソース レコードをホストできます。