プロジェクト間の参照を設定する
このドキュメントは、Google Cloud サービス ルーティング API を使用する Cloud Service Mesh にのみ適用されます。Istio API を使用する Cloud Service Mesh を構成する場合は、このドキュメントを使用しないでください。
一部のシナリオでは、サービス メッシュ構成に異なるプロジェクトのサービスが含まれています。たとえば、共有 VPC デプロイやピアリング VPC デプロイでは、各プロジェクト オーナーが独自のサービスセットを定義して、これらのサービスを他のすべてのプロジェクトで利用できるようにすることができます。
この構成はクロス プロジェクト構成と呼ばれます。異なるプロジェクトで定義されている複数のリソースが結合されて、1 つの構成を形成し、Envoy プロキシまたはプロキシレス gRPC クライアントに提供されます。
以下の手順では Mesh
リソースと HTTPRoute
リソースを使用していますが、Gateway
リソース、GRPCRoute
リソース、TCPRoute
リソースにも適用できます。
Mesh
リソースを構成する
Mesh
リソースを管理するホスト プロジェクトとしてプロジェクトを指定します。このプロジェクトで Mesh
リソースを作成、更新、削除する権限を持つサービス アカウントは、このプロジェクトの Mesh
リソースに接続されているルーティング構成を制御できます。
shared-mesh.yaml
ファイルで、Mesh
仕様を作成します。name: shared-mesh interceptionPort: 15001
このプロジェクトで
Mesh
リソースを定義します。gcloud network-services meshes import shared-mesh \ --source=shared-mesh.yaml \ --location=global
サービス オーナーがこの
Mesh
にルートを接続する際に必要になるため、Mesh
リソースの完全な URI をメモしておきます。/projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
この
Mesh
のnetworkservices.meshes.use
IAM 権限を、このMesh
にサービス情報を接続できるクロス プロジェクト サービス アカウントに付与します。gcloud projects add-iam-policy-binding [HOST_PROJECT_NUMBER] --member='[HTTP_ROUTE_SERVICE_OWNER_ACCOUNT]' --role='roles/compute.networkAdmin'
networkservices.meshes.use
権限を持つすべてのサービス オーナーは、この Mesh
リソースにルーティング ルールを追加できます。
サービス プロジェクトでルーティングを設定する
各サービス オーナーは、サイドカー プロキシ構成ガイドの例と同様に、プロジェクトに 1 つ以上のバックエンド サービスと Route
リソースを作成する必要があります。唯一の違いは、HTTPRoute
、GRPCRoute
、TCPRoute
の各リソースの meshes
フィールドに、ホスト プロジェクトの Mesh
リソースの URI が必要なことです。
次のようにして、
meshes
フィールドに値を設定します。プロジェクト ID またはプロジェクト番号のいずれかを使用できます。echo "name: sharedvpc-http-route hostnames: - helloworld-gce meshes: - /projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh rules: - action: destinations: - serviceName: \"url/of/the/service\"" | \ gcloud network-services http-routes import sharedvpc-http-route \ --source=- \ --location=global
サービス プロジェクトでクライアント サービスを作成する
サービス プロジェクト内にある Cloud Service Mesh クライアントを構成する場合、ブートストラップ構成で Mesh
リソースが配置されているプロジェクトの番号と Mesh
名を指定する必要があります。この要件は、Envoy プロキシとプロキシレス gRPC デプロイの両方に適用されます。Envoy のデプロイでは、--service-proxy:project-number
オプションを使用します。
次のステップ
Mesh
リソースまたはGateway
リソースに関連付けられた ルート リソースを一覧表示する方法については、Route
リソースを一覧表示するをご覧ください。この機能はプレビュー中です。