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 mesh layanan menyertakan layanan yang ada di project yang berbeda. Misalnya, dalam deployment VPC Bersama atau VPC yang di-peering, setiap pemilik project dapat menentukan kumpulan layanannya sendiri agar layanan ini tersedia untuk semua project lainnya.
Konfigurasi ini disebut konfigurasi cross-project karena beberapa resource yang ditentukan dalam berbagai project digabungkan untuk membentuk satu konfigurasi yang dapat disalurkan ke proxy Envoy atau klien gRPC tanpa proxy.
Petunjuk berikut menggunakan resource Mesh
dan HTTPRoute
, tetapi
dapat diterapkan ke resource Gateway
serta ke
resource GRPCRoute
dan TCPRoute
.
Mengonfigurasi resource Mesh
Tetapkan project sebagai project host tempat Anda mengelola
resource Mesh
. Setiap akun layanan yang memiliki izin untuk membuat,
memperbarui, atau menghapus resource Mesh
dalam project ini dapat mengontrol konfigurasi
perutean yang terpasang 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 rutenya 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 akan 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 telahnetworkservices.meshes.use
diberi izin dapat menambahkan aturan pemilihan rute ke resource Mesh
ini.
Menyiapkan pemilihan rute di project layanan
Setiap pemilik layanan harus membuat satu atau beberapa layanan backend dan resource Route
dalam project-nya, mirip dengan contoh dalam
panduan konfigurasi proxy file bantuan.
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
Membuat layanan klien di project layanan
Saat Anda mengonfigurasi klien Mesh Layanan Cloud yang terletak dalam 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.
Pada deployment Envoy, gunakan opsi --service-proxy:project-number
.
Langkah selanjutnya
- Untuk mengetahui informasi cara mencantumkan resource rute yang terkait dengan resource
Mesh
atauGateway
, lihat Mencantumkan resourceRoute
. Fitur ini ada dalam Pratinjau.