DNS 名前解決
このドキュメントは、Envoy を使用する Cloud Service Mesh と、転送ルールを含む古い負荷分散 API に適用されます。
転送ルールの仮想 IP アドレスと、転送ルールがサービスに関連付けられる仕組みとの関係について説明します。また、Cloud Service Mesh サービス メッシュ内のサービス間通信用の DNS を計画して構成する方法についても概説します。
この例では、互いに通信する 3 つのサービス service-a
、service-b
、service-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 つのことが発生します。
- まず、
service-a
がservice-b.example.com
の DNS ルックアップを実行して、service-b
の IP アドレスを解決します。 - ドメインは、
service-b
の転送ルールに構成されている IP アドレスと一致するように、10.0.0.101
に解決されます。 - これで、Envoy プロキシは、トラフィックをインターセプトして
service-b
のバックエンド(NEG、MIG のいずれでも)を持つバックエンド サービスにトラフィックを転送できるようになりました。
Cloud DNS 限定公開マネージド ゾーンを構成して、サービスのリソース レコードをホストできます。