ルーティング ルール マップの概要

このドキュメントでは、ルーティング ルール マップと、以前の API を使用する Traffic Director のデプロイでトラフィックを管理する方法について説明します。プレビュー版の新しいサービス ルーティング API を使用している場合は、新しいサービス ルーティング API の概要をご覧ください。

ルーティング ルール マップは、次の要素から構成されます。

このリソースを Traffic Director 用に作成または構成すると、Traffic Director はその値を使用して、データプレーンに送信する構成を作成します。この構成には、Envoy プロキシやプロキシレス gRPC アプリケーションなどの xDS クライアントが含まれます。データプレーンは、この構成に従ってトラフィックを処理します。

転送ルールはターゲット プロキシを参照します。ルールには、IP アドレスとポートがあります。Traffic Director のデプロイでは、転送ルールの負荷分散スキームを INTERNAL_SELF_MANAGED に設定する必要があります。ターゲット プロキシは、URL マップを参照します。これら 3 つのリソースを組み合わせてルーティング ルール マップを作成します。

転送ルールで、validateForProxyless フィールドが TRUE に設定されているターゲット gRPC プロキシを参照する場合は、IP アドレスを 0.0.0.0 に設定する必要があります。validateForProxylessTRUE に設定されている場合、0.0.0.0 以外の IP アドレスを指定する構成は拒否されます。

ルーティング ルール マップは、サービス メッシュ内でクライアントからサーバーにトラフィックを転送する方法を定義します。

サポートされているターゲット プロキシのタイプ

Traffic Director は、次のターゲット プロキシ タイプをサポートしています。

  • ターゲット HTTP プロキシ。クライアントとサーバーが HTTP または HTTP/2 の送受信を行うときに構成します。
  • ターゲット HTTPS プロキシ。クライアントとサーバーが HTTPS トラフィックの送受信を行うときに構成します。これは、Envoy プロキシでサービスのセキュリティを設定するときに必要です。
  • ターゲット TCP プロキシ。クライアントとサーバーが TCP トラフィックを送受信する場合に構成します。
  • ターゲット gRPC プロキシ。クライアントとサーバーが gRPC トラフィックの送受信を行うときに構成します。ターゲット gRPC プロキシには、プロキシレス gRPC サービスをデプロイする場合に TRUE に設定されるフィールド validateForProxyless が含まれます。

Envoy サイドカー プロキシを使用したトラフィック ルーティング

Envoy サイドカー プロキシで Traffic Director を使用すると、クライアント リクエストは次のようにルーティングされます。

  • ネットワーク スタックがリクエストをインターセプトして、Envoy サイドカー プロキシにリダイレクトします。
  • Envoy サイドカー プロキシは、リクエストの IP アドレスとポートを探します。
  • IP アドレスとポートのペアは、負荷分散スキームが INTERNAL_SELF_MANAGED に設定されている転送ルールで指定された IP とポートに対してチェックされます。
  • 一致する IP アドレスとポートの転送ルールが見つかった場合、Envoy は転送ルールが参照しているターゲット HTTP プロキシまたはターゲット gRPC プロキシを探します。
  • Envoy は、ターゲット プロキシが参照する URL マップを確認します。
  • Envoy は、URL マップで指定されたルールに従ってリクエストをルーティングします。

ターゲット TCP プロキシを使用したトラフィックのルーティング方法については、Traffic Director を使用した TCP トラフィックのルーティングをご覧ください。

プロキシレス gRPC アプリケーションを使用したトラフィック ルーティング

プロキシレス gRPC アプリケーションの場合、この動作は異なります。gRPC クライアントを構成するときは、クライアントが接続するサービスのターゲット URI を指定します。この URI では、xds 名前解決スキームと hostname:port 形式(例: xds:///example.hostname:8080)を使用します。

プロキシレス gRPC クライアントが Traffic Director に接続されると、Traffic Director はそのサービスに対応する情報を次のように送信します。

  • ロードバランシング スキームが INTERNAL_SELF_MANAGED に設定された転送ルールを探して、ターゲット URI で指定されたポートと一致するポートの転送ルールを見つけます。
  • 各転送ルールそれぞれに対してターゲット gRPC プロキシまたはターゲット HTTP プロキシを検索します。
  • これらのターゲット gRPC プロキシまたはターゲット HTTP プロキシによって参照される URL マップを見つけます。
  • Traffic Director は、hostname[:port] 形式の URL マップにあるホストルールをチェックし、一致を探します。
  • 一致するものが見つかると、Traffic Director はルーティング ルールとサービス情報を gRPC クライアントに返します。

複数の一致が見つかった場合、動作は定義されておらず、予期しない動作が発生する可能性があります。通常、これは、次の両方の条件が満たされている場合に行われます。

  • 同じホスト名が複数の URL マップで使用されている。
  • 負荷分散スキーム INTERNAL_SELF_MANAGED の複数の転送ルールで同じポートを指定している。

そのため、同じポートを指定する転送ルールで参照される複数の URL マップでは、同じホスト名を再利用しないことをおすすめします。

次のステップ