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 に適用される次のプロパティが含まれています。転送ルールにより、宛先 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 文字以内の長さで、正規表現 先頭文字に小文字を使用し、残りの文字には、ダッシュ、小文字、数字を使用する必要があります。ただし、最後の文字にはダッシュを使用できません。 |
IPAddress |
✔ |
Cloud Service Mesh の転送ルールの IP アドレスは、Virtual Private Cloud(VPC)ネットワーク内のサブネットの IP アドレス範囲に対応する必要はありません。特定の VPC ネットワーク、IP アドレス、ポートに対して設定できる内部セルフマネージド転送ルールは 1 つのみです。 たとえば、同じ VPC ネットワークで、 |
ターゲット gRPC プロキシを使用した IPAddress |
その結果、Cloud Service Mesh は、 |
|
target |
✔ |
この転送ルールがトラフィックを転送するターゲット プロキシ。Cloud Service Mesh は、 Google Cloud コンソールを使用して転送ルールを構成すると、ターゲット プロキシが自動的に構成されます。Google Cloud CLI または API を使用する場合は、転送ルールを作成する前にターゲット プロキシが存在している必要があります。特定のプロキシで複数の転送ルールを使用できます。 |
IPProtocol |
✔ | この転送ルールが一致するプロトコルのタイプ。サポートされている値は TCP のみです。 |
loadBalancingScheme |
✔ | 転送ルールの使用方法を指定します。Cloud Service Mesh の有効な値は INTERNAL_SELF_MANAGED です。 |
portRange |
✔ |
ポートまたはダッシュで結合されたポート範囲。 これらのポートに送信された指定されたプロトコルのパケットは、適切なバックエンドに転送されます。範囲を示す単一の数値(例: 特定の VPC ネットワーク、IP アドレス、ポートに対して設定できる内部セルフマネージド転送ルールは 1 つのみです。たとえば、同じ VPC ネットワークで、 プロキシレス gRPC サービスでは、転送ルール内のポートは、gRPC アプリケーションがサービスに接続するために使用する URI で指定されたポートに一致します。URI にポートが指定されていない場合は、 |
network |
✔ |
Envoy プロキシを実行している Google Cloud VM が配置されている VPC ネットワークを指定します。 Envoy プロキシは、プロキシがデプロイされている同じネットワークに対して定義した Cloud Service Mesh 構成を読み取ります。 Cloud Service Mesh は、Google Cloud ネットワーク内のみのクライアントに対するロード バランシングをサポートします。転送ルールでネットワーク名を指定します。VPC ネットワーク ピアリングはサポートされていません。 |
グローバル転送ルールの追加
ロード バランシング API を使用して、Cloud Service Mesh の設定全体の中で転送ルールを構成する方法については、以下をご覧ください。
- 自動 Envoy デプロイで Compute Engine VM の Cloud Service Mesh を設定する
- 手動 Envoy デプロイで Compute Engine VM の Cloud Service Mesh を設定する
- 自動 Envoy インジェクションで GKE Pod の Cloud Service Mesh を設定する
- 手動 Envoy インジェクションで GKE Pod の Cloud Service Mesh を設定する
- Compute Engine VM およびプロキシレス gRPC サービス用に Cloud Service Mesh を設定する
- GKE Pod およびプロキシレス gRPC サービス用に Cloud Service Mesh を設定する
次のステップ
- メタデータ フィルタを使用して、転送ルールに関連付けられた構成を受信するサイドカー プロキシを制御する方法については、
MetadataFilter
の一致に基づく構成フィルタリングの設定をご覧ください。 - トラフィックをルーティングするには、Cloud Service Mesh ルーティング ルールマップの概要をご覧ください。
- Cloud Service Mesh の詳細については、Cloud Service Mesh の概要をご覧ください。