Menyiapkan referensi lintas project

Dokumen ini hanya berlaku untuk Cloud Service Mesh dengan API perutean layanan tertentu. Jangan gunakan dokumen ini jika Anda mengonfigurasi Mesh Layanan Cloud dengan Istio API.

Dalam beberapa skenario, konfigurasi mesh layanan mencakup layanan yang berada di proyek yang berbeda. Misalnya, di VPC Bersama atau VPC yang di-peering setiap pemilik project dapat menentukan set tugasnya sendiri layanan agar layanan ini tersedia untuk semua proyek lainnya.

Konfigurasi lintas project dengan resource Mesh
Konfigurasi lintas project dengan resource Mesh (klik untuk memperbesar)

Konfigurasi ini disebut konfigurasi lintas-project karena beberapa sumber daya yang didefinisikan dalam proyek yang berbeda digabungkan untuk membentuk satu konfigurasi yang dapat disajikan ke proxy Envoy atau gRPC tanpa proxy dengan klien besar.

Petunjuk berikut menggunakan resource Mesh dan HTTPRoute, tetapi keduanya dapat diterapkan ke resource Gateway dan ke 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 perutean konfigurasi yang dilampirkan 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 rutenya 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 harus dapat melampirkan informasi layanan Anda 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 networkservices.meshes.use izin yang diberikan kepada mereka dapat menambahkan aturan pemilihan rute mereka ke Mesh ini resource Anda

Menyiapkan pemilihan rute di project layanan

Setiap pemilik layanan harus membuat satu atau beberapa layanan backend dan Route dalam project mereka, mirip dengan contoh dalam panduan konfigurasi proxy bantuan. Satu-satunya perbedaan adalah setiap HTTPRoute, GRPCRoute, atau TCPRoute resource harus memiliki URI resource Mesh project host di meshes kolom tersebut.

  1. Gunakan hal berikut untuk mengisi kolom meshes. Anda dapat menggunakan ID project 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 dalam project layanan

Saat Anda mengonfigurasi klien Cloud Service Mesh yang berada di suatu layanan , konfigurasi bootstrap harus mencantumkan nomor proyek tempat Resource Mesh berada dan nama Mesh. Persyaratan ini berlaku untuk Envoy proxy 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 Mesh atau Gateway, lihat Mencantumkan resource Route. Fitur ini sedang dalam Pratinjau.