Cloud Service Mesh の転送ルール

このドキュメントは、ロード バランシング API を使用する Cloud Service Mesh にのみ適用されます。Cloud Service Mesh をデプロイするには、サービス ルーティング API を使用することを強くおすすめします。

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

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

Cloud Service Mesh のコントロール プレーンでは、内部、セルフマネージド、グローバルの各転送ルールが、IP アドレス、ポート、プロトコルでトラフィックをターゲット プロキシにルーティングします。ターゲット プロキシは、トラフィックの宛先を決定するルールを含む URL マップを指します。URL マップは、デフォルトのバックエンド サービスも指定します。このバックエンド サービスはヘルスチェックを指定し、仮想マシン(VM)インスタンスを含むマネージド インスタンス グループ(MIG)やネットワーク エンドポイント グループ(NEG)など、適切なバックエンドを決定します。これには Google Kubernetes Engine(GKE)バックエンド Pod が含まれます。

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

ハイライト表示された Cloud Service Mesh の転送ルール。
ハイライト表示された Cloud Service Mesh の転送ルール(クリックして拡大)

転送ルールのプロパティ

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

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

  • プロキシ デプロイで、他に特定の一致が見つからない場合、プロキシは 0.0.0.0 IP アドレスで受信トラフィックを照合できます。

  • プロキシレス デプロイでは、0.0.0.0 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 アドレスのいずれかです。

Cloud Service Mesh の転送ルールの IP アドレスは、Virtual Private Cloud(VPC)ネットワーク内のサブネットの IP アドレス範囲に対応する必要はありません。特定の VPC ネットワーク、IP アドレス、ポートに対して設定できる内部セルフマネージド転送ルールは 1 つのみです。

たとえば、同じ VPC ネットワークで、0.0.0.0 IP アドレスとポート 80 を使用する転送ルールを 2 つ作成することはできません。

ターゲット gRPC プロキシを使用した IPAddress

validateForProxyless フィールドが TRUE に設定され、その IP アドレスが 0.0.0.0 に設定されたターゲット gRPC プロキシを参照する転送ルール。

xds スキームを使用する gRPC クライアントは、チャネル URI のホスト名を解決するために DNS ルックアップを実行しません。このようなクライアントは、Cloud Service Mesh にリスナー ディスカバリ サービス(LDS)リクエストを送信して、ターゲット URI の hostname[:port] を解決します。DNS ルックアップは実行されず、ホスト名の DNS エントリも不要です。

その結果、Cloud Service Mesh は、0.0.0.0 の IP アドレスと、URI で指定されたポート(デフォルトは 80)を使用して転送ルールを検索します。次に、Cloud Service Mesh は、転送ルールが参照するターゲット プロキシの URL マップの中で一致するホストルールを探します。

target

この転送ルールがトラフィックを転送するターゲット プロキシ。Cloud Service Mesh は、target-http-proxytarget-https-proxytarget-grpc-proxy をサポートします。

Google Cloud コンソールを使用して転送ルールを構成すると、ターゲット プロキシが自動的に構成されます。Google Cloud CLI または API を使用する場合は、転送ルールを作成する前にターゲット プロキシが存在している必要があります。特定のプロキシで複数の転送ルールを使用できます。

IPProtocol この転送ルールが一致するプロトコルのタイプ。サポートされている値は TCP のみです。
loadBalancingScheme 転送ルールの使用方法を指定します。Cloud Service Mesh の有効な値は INTERNAL_SELF_MANAGED です。
portRange

ポートまたはダッシュで結合されたポート範囲。

これらのポートに送信された指定されたプロトコルのパケットは、適切なバックエンドに転送されます。範囲を示す単一の数値(例: 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 プロキシは、プロキシがデプロイされている同じネットワークに対して定義した Cloud Service Mesh 構成を読み取ります。default という名前の VPC ネットワークまたはカスタム ネットワークを使用できます。

Cloud Service Mesh は、Google Cloud ネットワーク内のみのクライアントに対するロード バランシングをサポートします。転送ルールでネットワーク名を指定します。VPC ネットワーク ピアリングはサポートされていません。

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

ロード バランシング API を使用して、Cloud Service Mesh の設定全体の中で転送ルールを構成する方法については、以下をご覧ください。

次のステップ