Menyiapkan referensi lintas project
Dokumen ini hanya berlaku untuk Cloud Service Mesh dengan API perutean layanan Google Cloud. Jangan gunakan dokumen ini jika Anda mengonfigurasi Cloud Service Mesh dengan Istio API.
Dalam beberapa skenario, konfigurasi service mesh mencakup layanan yang berada di project yang berbeda. Misalnya, dalam deployment VPC Bersama atau VPC yang di-peering, setiap pemilik project dapat menentukan serangkaian layanan mereka sendiri untuk menyediakan layanan ini bagi semua project lainnya.
Mesh
(klik untuk memperbesar)Konfigurasi ini disebut konfigurasi lintas project karena beberapa resource yang ditentukan dalam project yang berbeda digabungkan untuk membentuk satu konfigurasi yang dapat ditayangkan ke proxy Envoy atau klien gRPC tanpa proxy.
Petunjuk berikut menggunakan resource Mesh
dan HTTPRoute
, tetapi petunjuk ini dapat diterapkan ke resource Gateway
dan ke resource GRPCRoute
dan TCPRoute
.
Mengonfigurasi resource Mesh
Tetapkan project sebagai project host tempat Anda mengelola resource
Mesh
. Akun layanan apa pun dengan izin untuk membuat, memperbarui, atau menghapus resource Mesh
dalam project ini dapat mengontrol konfigurasi perutean yang dilampirkan ke resource Mesh
dalam project ini.
Di file
shared-mesh.yaml
, buat spesifikasiMesh
.name: shared-mesh interceptionPort: 15001
Tentukan resource
Mesh
dalam project ini.gcloud network-services meshes import shared-mesh \ --source=shared-mesh.yaml \ --location=global
Tulis URI lengkap resource
Mesh
, karena pemilik layanan memerlukan URI untuk melampirkan rute mereka keMesh
ini./projects/HOST_PROJECT_NUMBER/locations/global/meshes/shared-mesh
Berikan izin IAM
networkservices.meshes.use
untukMesh
ini ke akun layanan lintas project yang harus dapat melampirkan informasi layanannya keMesh
ini.gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER --member='HTTP_ROUTE_SERVICE_OWNER_ACCOUNT' --role='roles/compute.networkAdmin'
Semua pemilik layanan yang telah diberi izinnetworkservices.meshes.use
dapat menambahkan aturan perutean mereka ke resource Mesh
ini.
Menyiapkan pemilihan rute di project layanan
Setiap pemilik layanan perlu membuat satu atau beberapa layanan backend dan Route
resource di projectnya, mirip dengan contoh dalam
panduan konfigurasi proxy sidecar.
Satu-satunya perbedaan adalah setiap resource HTTPRoute
, GRPCRoute
, atau TCPRoute
harus memiliki URI resource Mesh
project host di kolom meshes
.
Gunakan hal berikut untuk mengisi kolom
meshes
. Anda dapat menggunakan project ID atau nomor project.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
Buat layanan klien di project layanan
Saat Anda mengonfigurasi klien Cloud Service Mesh yang berada di project layanan, konfigurasi bootstrap harus menentukan nomor project tempat resource Mesh
berada dan nama Mesh
. Persyaratan ini berlaku untuk
proxy Envoy dan
deployment gRPC tanpa proxy.
Dengan deployment Envoy, gunakan opsi --service-proxy:project-number
.
Langkah berikutnya
- Untuk mengetahui informasi tentang mencantumkan resource rute yang terkait dengan resource
Mesh
atauGateway
, lihat Mencantumkan resourceRoute
.