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 lintas project dengan resource Mesh
Konfigurasi lintas project dengan resource Mesh (klik untuk memperbesar)

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.

  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. Tulis 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 akan dapat melampirkan informasi layanannya 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 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.

  1. 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 atau Gateway, lihat Mencantumkan resource Route. Fitur ini ada dalam Pratinjau.