Menyiapkan referensi lintas project

Dokumen ini hanya berlaku untuk Cloud Service Mesh dengan API pemilihan rute layanan Google Cloud. Jangan gunakan dokumen ini jika Anda mengonfigurasi Cloud Service Mesh dengan Istio API.

Dalam beberapa skenario, konfigurasi mesh layanan mencakup layanan yang berada di project yang berbeda. Misalnya, dalam deployment VPC Bersama atau VPC peer, setiap pemilik project dapat menentukan kumpulan layanannya sendiri untuk menyediakan layanan ini bagi semua project lainnya.

Konfigurasi lintas project dengan resource Mesh
Konfigurasi lintas project dengan resource 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 dapat diterapkan ke resource Gateway dan ke resource GRPCRoute dan TCPRoute.

Mengonfigurasi resource Mesh

Tetapkan project sebagai project host tempat Anda mengelola resource Mesh. Setiap akun layanan dengan izin untuk membuat, memperbarui, atau menghapus resource Mesh dalam project ini dapat mengontrol konfigurasi rute yang terpasang ke resource Mesh dalam project ini.

  1. Di file shared-mesh.yaml, buat spesifikasi Mesh.

    name: shared-mesh
    interceptionPort: 15001
    
  2. Tentukan resource Mesh dalam project ini.

    gcloud network-services meshes import shared-mesh \
      --source=shared-mesh.yaml \
      --location=global
    
  3. Tuliskan URI lengkap resource Mesh, karena pemilik layanan memerlukan URI untuk melampirkan rute mereka ke Mesh ini.

    /projects/[HOST_PROJECT_NUMBER]/locations/global/meshes/shared-mesh
    
  4. Berikan izin IAM networkservices.meshes.use untuk Mesh ini ke akun layanan lintas project yang seharusnya dapat melampirkan informasi layanan mereka ke Mesh ini.

    gcloud projects add-iam-policy-binding [HOST_PROJECT_NUMBER]
      --member='[HTTP_ROUTE_SERVICE_OWNER_ACCOUNT]'
      --role='roles/compute.networkAdmin'
    

Semua pemilik layanan yang memiliki izinnetworkservices.meshes.use yang diberikan kepada mereka dapat menambahkan aturan pemilihan rute ke resource Mesh ini.

Menyiapkan pemilihan rute di project layanan

Setiap pemilik layanan perlu membuat satu atau beberapa layanan backend dan resource Route dalam project mereka, 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.

  1. Gunakan kode 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 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 selanjutnya

  • Untuk informasi tentang cara mencantumkan resource rute yang terkait dengan resource Mesh atau Gateway, lihat Mencantumkan resource Route. Fitur ini masih dalam Pratinjau.