DNS 名前解決
このドキュメントは、Envoy と古いロード バランシング API を使用する Cloud Service Mesh に適用されます(転送ルールを含む)。
このドキュメントでは、転送ルールの仮想 IP アドレスと、転送ルールがサービスに関連付けられる仕組みとの関係について説明します。また、Cloud Service Mesh サービス メッシュ内のサービス間通信用の DNS を計画して構成する方法についても概説します。
この例では、互いに通信する 3 つのサービス service-a、service-b、service-c を使用して説明します。デベロッパーは、サービス間通信のコードで完全修飾ドメイン名を使用することがよくあります。ドメイン名が example.com の場合、3 つのサービスは次のように表現されます。
service-a.example.comservice-b.example.comservice-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 の構成に、ポート 80 を使用する 3 つの転送ルール(FR1、FR2、FR3)があります。
- 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 限定公開マネージド ゾーンを構成して、サービスのリソース レコードをホストできます。