Traffic Director の転送ルールの使用

Traffic Director は、転送ルールを使用して、メッシュ内のトラフィックが転送されるターゲット プロキシを決定します。

各転送ルールにより、サービスに対する単一のグローバル IPv4 アドレスが提供されます。そのアドレスは、サービスに対する内部 DNS レコードの作成に使用できます(Cloud DNS マネージド プライベート ゾーンを使用するなど)。転送ルールのメタデータ フィルタは、xDS 準拠のサイドカー プロキシが構成を受け取る条件を指定します。

Traffic Director のコントロール プレーンについては、内部、セルフマネージド、グローバルの各転送ルールが、トラフィックの宛先を決定するルールを含む URL マップを指す IP アドレス、ポート、プロトコルでトラフィックをルーティングします。URL マップはまた、ヘルスチェックを指定するデフォルト バックエンド サービスを指定し、仮想マシン インスタンスを含むマネージド インスタンス グループや GKE バックエンド Pod を含むネットワーク エンドポイント グループなど、適切なバックエンドを決定します。

ハイライト表示された Traffic Director の転送ルール(クリックして拡大)
ハイライト表示された Traffic Director の転送ルール(クリックして拡大)

この図は、Traffic Director アーキテクチャにおける転送ルールの位置付けを示しています。

転送ルールのプロパティ

転送ルールのリソースには、Traffic Director に適用される次のプロパティが含まれています。宛先 IP アドレス、プロトコル、ポート番号に一致するトラフィックは、転送ルールによって処理されます。

転送ルールの 0.0.0.0 IP アドレスは、Traffic Director を使用するオプションの 1 つです。0.0.0.0 の IP アドレスは、任意の IP アドレスを意味します。

  • プロキシ デプロイでは、他に特定の一致が見つからない場合、プロキシは受信トラフィックを照合できます。
  • プロキシレス デプロイでは、IP アドレスが不要であることを指定する方法になります。以下では、ターゲット gRPC プロキシでの 0.0.0.0 IP アドレスについて詳しく説明します。
name
(必須)転送ルールの名前。名前はこのプロジェクト内で一意であり、63 文字以内の長さで、[a-z]([-a-z0-9]*[a-z0-9])? という正規表現を使用する必要があります。つまり、先頭文字には小文字、その後続文字にはダッシュ、小文字、数字のいずれかを使用する必要があります。ただし最後の文字にはダッシュを使用できません。
IPAddress
(必須)0.0.0.0127.0.0.1、または RFC 1918 アドレスのいずれかの中から 1 つを指定する必要があります。Traffic Director の転送ルールの IP アドレスは、VPC ネットワーク内のサブネットの IP アドレス範囲に対応する必要はありません。特定の VPC ネットワーク、IP アドレス、ポートに対して設定できる内部セルフマネージド転送ルールは 1 つのみです。たとえば、同じ VPC ネットワークで、0.0.0.0 IP アドレスとポート 80 を使用する 2 つの転送ルールを作成することはできません。
ターゲット gRPC プロキシを使用した IPAddress
転送ルールで、validateForProxyless フィールドが TRUE に設定されているターゲット gRPC プロキシを参照する場合は、IP アドレスを 0.0.0.0 に設定する必要があります。xds スキームを使用する gRPC クライアントは、チャネル URI のホスト名を解決するために DNS URI ルックアップを実行しません。このようなクライアントは、Traffic Director に LDS リクエストを送信して、ターゲット URI のホスト名 [:port] を解決します。DNS ルックアップは実行されず、ホスト名の DNS エントリも不要です。その結果、Traffic Director は、0.0.0.0 の IP アドレスと、URI で指定されたポート(デフォルトは 80)を使用して転送ルールを検索します。次に、Traffic Director は、一致するホストルールを、転送ルールが参照するターゲット プロキシの URL マップの中で探します。
target
(必須)この転送ルールがトラフィックを転送するターゲット プロキシ。Traffic Director は target-http-proxy のみをサポートします。GCP Console を使用して転送ルールを構成すると、ターゲット プロキシが自動的に構成されます。gcloud または API を使用する場合は、転送ルールを作成する前にターゲット プロキシが存在している必要があります。特定のプロキシで複数の転送ルールを使用できます。
IPProtocol
(必須)この転送ルールが一致するプロトコルのタイプ。サポートされている値は TCP のみです。
loadBalancingScheme
(必須)転送ルールの使用方法を指定します。Traffic Director の有効な値は INTERNAL_SELF_MANAGED です。
portRange

(必須)ポートまたはダッシュで結合されたポート範囲。これらのポートに送信された指定されたプロトコルのパケットは、適切なバックエンドに転送されます。1 つの範囲を指定できます。たとえば、8080-8080 です。特定の VPC ネットワーク、IP アドレス、ポートに対して設定できる内部セルフマネージド転送ルールは 1 つのみです。たとえば、同じ VPC ネットワークで、0.0.0.0 IP アドレスとポート 80 を使用する 2 つの転送ルールを作成することはできません。

プロキシレス gRPC サービスでは、転送ルール内のポートは、gRPC アプリケーションがサービスに接続するために使用する URI で指定されたポートに一致します。URI にポートが指定されていない場合は、80 がデフォルトのポートになります。

network

(必須)Envoy プロキシを実行している Google Cloud VM が配置されている VPC を指定します。Envoy プロキシは、プロキシがデプロイされている同じネットワークに対して定義した Traffic Director の構成を読み取ります。default という名前の VPC ネットワークまたはカスタム ネットワークを使用できます。

Traffic Director は、Google Cloud ネットワーク内のみのクライアントに対する負荷分散をサポートし、転送ルールでネットワーク名を指定します。VPC ピアリングはサポートされていません。

グローバル転送ルールの追加

Traffic Director の設定全体の中で転送ルールを構成する方法については、次のドキュメントをご覧ください。

次のステップ