Bersiap menyiapkan Cloud Service Mesh dengan layanan gRPC tanpa proxy

Penyiapan Cloud Service Mesh mencakup beberapa fase. Dokumen ini menjelaskan fase pertama: petunjuk untuk mempersiapkan konfigurasi Cloud Service Mesh dengan aplikasi gRPC tanpa proxy. Dokumen ini berlaku saat Anda menggunakan API load balancing. Namun, sebaiknya Anda menggunakan API pemilihan rute layanan. Fase lainnya dibahas dalam panduan khusus platform yang tercantum dalam Melanjutkan proses penyiapan nanti dalam dokumen ini.

Sebelum membaca panduan ini, pahami dokumen berikut, yang memberikan ringkasan penggunaan Cloud Service Mesh dengan aplikasi gRPC tanpa proxy:

Prasyarat

Siapkan lingkungan Anda dengan menyelesaikan tugas berikut:

  1. Aktifkan penagihan.
  2. Berikan izin yang diperlukan.
  3. Aktifkan Traffic Director API untuk project Anda.
  4. Pastikan akun layanan memiliki izin yang memadai untuk mengakses Traffic Director API.

Bagian berikut ini menyediakan petunjuk untuk setiap tugas.

Aktifkan penagihan

Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan, menonaktifkan, atau mengubah penagihan untuk sebuah project.

Memberikan izin IAM yang diperlukan

Anda harus memiliki izin Identity and Access Management (IAM) yang memadai untuk membuat instance VM dan mengubah jaringan untuk mengonfigurasi Cloud Service Mesh. Jika Anda memiliki peran Owner atau Editor project (roles/owner atau roles/editor) di project tempat Anda mengaktifkan Cloud Service Mesh, berarti Anda otomatis memiliki izin yang benar.

Jika tidak, Anda harus memiliki semua peran IAM yang ditampilkan pada tabel berikut. Jika memiliki peran ini, Anda juga memiliki izin terkait, seperti yang dijelaskan dalam dokumentasi IAM Compute Engine.

Tugas Peran yang diperlukan
Menetapkan kebijakan IAM untuk akun layanan. Admin Akun Layanan
(roles/iam.serviceAccountAdmin)
Aktifkan Cloud Service Mesh. Admin Penggunaan Layanan
(roles/serviceusage.serviceUsageAdmin)
Membuat jaringan, subnet, dan komponen load balancer. Admin Jaringan Compute
(roles/compute.networkAdmin)
Menambahkan dan menghapus aturan firewall. Admin Keamanan Compute
(roles/compute.securityAdmin)
Membuat instance. Admin Instance Compute
(roles/compute.instanceAdmin)
Membuat dan mengubah cluster GKE jika menggunakan Pod. Admin Cluster
(roles/container.clusterAdmin)
Mengizinkan akses ke akun layanan. Pengguna Akun Layanan
(roles/iam.serviceAccountUser

VM Compute Engine harus memiliki cakupan https://www.googleapis.com/auth/cloud-platform. Untuk informasi selengkapnya, lihat Memecahkan masalah deployment yang menggunakan gRPC tanpa proxy.

Dengan xDS v3, berikan peran roles/trafficdirector.client kepada akun layanan yang digunakan oleh klien gRPC Cloud Service Mesh.

Mengaktifkan Traffic Director API

Konsol

  1. Di konsol Google Cloud, buka halaman API Library untuk project Anda.

    Buka Library API

  2. Di kolom Search for APIs & Services, masukkan Traffic Director.

  3. Di daftar hasil penelusuran, klik Traffic Director API. Jika Anda tidak melihat Traffic Director API tercantum, artinya Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Traffic Director API.

  4. Di halaman Traffic Director API, klik Enable.

gcloud

Jalankan perintah berikut:

gcloud services enable trafficdirector.googleapis.com

Mengaktifkan akun layanan untuk mengakses Traffic Director API

Saat Anda menyiapkan bidang data dan menghubungkannya ke Cloud Service Mesh, klien xDS Anda akan terhubung ke server xDS trafficdirector.googleapis.com. Klien xDS ini menampilkan identitas akun layanan ke server xDS untuk memastikan bahwa komunikasi antara bidang data dan bidang kontrol diizinkan dengan benar.

Untuk VM Compute Engine, klien xDS menggunakan akun layanan yang ditetapkan ke VM.

Anda memerlukan izin berikut, bergantung pada versi protokol xDS yang digunakan aplikasi gRPC Anda. Versi protokol xDS ditentukan dalam file bootstrap. Kami sangat menyarankan Anda mengonfigurasi aplikasi dengan xDS v3, atau bermigrasi ke xDS v3 jika Anda sudah memiliki deployment yang menggunakan xDS v2.

  • Saat Anda menggunakan xDS v3, akun layanan yang digunakan oleh aplikasi gRPC Anda harus memiliki izin trafficdirector.networks.reportMetrics dan trafficdirector.networks.getConfigs. Anda dapat menggunakan peran Klien Mesh Cloud Service IAM (roles/trafficdirector.client), yang menggabungkan kedua izin tersebut.

  • Saat Anda menggunakan xDS v2, akun layanan yang digunakan oleh aplikasi gRPC Anda harus memiliki izin compute.globalForwardingRules.get IAM level project. Anda juga dapat memberikan izin ini dengan menetapkan peran Compute Network Viewer (roles/compute.networkViewer) ke akun layanan.

Konsol

  1. Di konsol Google Cloud, buka halaman IAM & Admin.

    Buka IAM & Admin

  2. Pilih project Anda.

  3. Identifikasi akun layanan yang ingin Anda tambahi peran:

    • Jika akun layanan belum ada dalam daftar Anggota, akun tersebut tidak memiliki peran yang ditetapkan. Klik Add, lalu masukkan alamat email akun layanan.
    • Jika akun layanan sudah ada dalam daftar Anggota, berarti akun tersebut memiliki peran yang sudah ada. Pilih akun layanan, lalu klik tab Peran.
  4. Luaskan peran. Untuk akun layanan yang ingin Anda edit, klik Edit.

  5. Pilih peran Other > Cloud Service Mesh Client.

  6. Untuk menerapkan peran ke akun layanan, klik Simpan.

gcloud

Jalankan perintah berikut:

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

Ganti kode berikut:

  • PROJECT: masukkan gcloud config get-value project
  • SERVICE_ACCOUNT_EMAIL: email yang terkait dengan akun layanan

Selanjutnya, ikuti keseluruhan prosedur berikut untuk menyiapkan aplikasi gRPC tanpa proxy dalam mesh layanan:

  1. Update klien gRPC Anda ke gRPC versi terbaru, dengan patch terbaru.
  2. Perbarui skema resolver nama gRPC klien Anda saat membuat saluran dan menentukan file bootstrap Cloud Service Mesh.
  3. Mengonfigurasi resource Cloud Service Mesh dan Cloud Load Balancing.

Dokumen ini memberikan informasi untuk menyelesaikan dua langkah pertama. Proses konfigurasi yang Anda gunakan untuk langkah 3 bergantung pada apakah deployment Anda menggunakan VM Compute Engine atau Grup endpoint jaringan (NEG) GKE.

Versi dan bahasa gRPC yang didukung

gRPC adalah project open source dan dukungan rilisnya dijelaskan dalam FAQ gRPC. Sebaiknya gunakan gRPC versi terbaru untuk memastikan bahwa kerentanan keamanan yang diketahui dapat dimitigasi. Hal ini juga memastikan bahwa aplikasi Anda memiliki akses ke fitur terbaru yang didukung oleh Cloud Service Mesh. Fitur mesh layanan yang didukung dalam berbagai implementasi dan versi gRPC tercantum di GitHub. Untuk mengetahui daftar fitur dan bahasa gRPC yang didukung dengan Cloud Service Mesh dan layanan gRPC tanpa proxy, lihat fitur Cloud Service Mesh.

Cloud Service Mesh mempertahankan kompatibilitas dengan versi gRPC yang saat ini dan didukung serta berupaya agar kompatibel dengan versi gRPC yang berusia kurang dari satu tahun, dengan tunduk pada Persyaratan Layanan Google Cloud Platform.

Mengupdate klien gRPC Anda

Update library gRPC di aplikasi Anda ke versi yang mendukung fitur yang Anda perlukan. Untuk mengetahui detailnya, lihat bagian sebelumnya.

Tambahkan name-resolver xDS sebagai dependensi ke aplikasi gRPC Anda. Persyaratan per bahasa untuk Java dan Go ditampilkan di bagian berikut. Bahasa lain tidak memiliki persyaratan tambahan.

Persyaratan Java

Di Java, jika Anda menggunakan Gradle, tambahkan dependensi grpc-xds ke file build.gradle Anda. Ganti LATEST_GRPC_VERSION dengan gRPC versi terbaru.

dependencies {
  runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION'
}

Jika Anda menggunakan Maven, tambahkan kode berikut ke bagian <dependencies> pada pom.xml. Ganti LATEST_GRPC_VERSION dengan gRPC versi terbaru.

    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-xds</artifactId>
      <version>LATEST_GRPC_VERSION</version>
      <scope>runtime</scope>
    </dependency>

Persyaratan Go

Jika Anda menggunakan Go, impor paket xds Go.

Menetapkan resolver nama gRPC untuk menggunakan xds

Tetapkan atau ubah aplikasi gRPC Anda untuk menggunakan skema resolusi nama xds di URI target, bukan DNS atau skema resolver lainnya. Anda melakukannya dengan menggunakan imbuhan xds:/// dalam nama target saat membuat saluran gRPC. Load balancing untuk klien gRPC per saluran.

Sertakan nama layanan yang digunakan dalam URI target di konfigurasi Cloud Service Mesh. Misalnya, pada Java, Anda membuat saluran menggunakan struktur ini, yang nama layanannya adalah helloworld:

ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")

Membuat dan mengonfigurasi file bootstrap

Skema resolver xds memberi tahu aplikasi gRPC untuk terhubung ke Cloud Service Mesh guna mendapatkan informasi konfigurasi untuk layanan target. Oleh karena itu, lakukan hal berikut:

  • Buat file bootstrap, seperti yang ditunjukkan dalam contoh berikut. File ini memberi tahu gRPC untuk terhubung ke server xDS (Cloud Service Mesh) guna mendapatkan konfigurasi untuk layanan tertentu.
  • Tentukan variabel lingkungan bernama GRPC_XDS_BOOTSTRAP, dengan nama file bootstrap sebagai nilai variabel lingkungan.

Petunjuk penyiapan memiliki contoh yang menunjukkan cara menghasilkan file bootstrap. Untuk memudahkan, Anda dapat menggunakan versi terbaru generator bootstrap gRPC Cloud Service Mesh.

File bootstrap yang berisi informasi yang diperlukan untuk terhubung ke Cloud Service Mesh harus disertakan bersama aplikasi. Contoh file bootstrap terlihat seperti ini:

{
  "xds_servers": [
    {
      "server_uri": "trafficdirector.googleapis.com:443",
      "channel_creds": [
        {
          "type": "google_default"
        }
      ],
      "server_features": ["xds_v3"]
    }
  ],
  "node": {
    "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18",
    "metadata": {
      "TRAFFICDIRECTOR_NETWORK_NAME": "default"
    },
    "locality": {
      "zone": "us-central1-a"
    }
  }
}

Tabel berikut menjelaskan kolom dalam file bootstrap.

Kolom Nilai dan deskripsi
xds_servers Daftar server xDS. gRPC hanya menggunakan yang pertama dalam daftar.
server_uri Tentukan minimal satu. gRPC akan mencoba terhubung hanya ke server xDS pertama dalam daftar xds_servers. Nilai defaultnya adalah trafficdirector.googleapis.com:443.
channel_creds Kredensial yang akan digunakan dengan server xDS.
type Gunakan nilai google_default. Untuk mengetahui informasi selengkapnya tentang cara memperoleh kredensial, lihat Mulai menggunakan autentikasi.
server_features Daftar fitur yang didukung server, seperti dukungan xDS v3. Nilai defaultnya kosong.
node Informasi tentang klien yang terhubung ke server xDS.
id

id harus dalam format berikut seperti yang ditunjukkan pada contoh sebelumnya:

projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID

Berikan string unik sebagai nilai ID. ID ini membantu mengidentifikasi klien gRPC yang terhubung ke Cloud Service Mesh.

metadata Informasi khusus untuk server xDS.
TRAFFICDIRECTOR_NETWORK_NAME Jika kolom ini kosong atau tidak ditentukan, nilai akan ditetapkan ke default.
locality Zona Google Cloud tempat klien gRPC dijalankan.

Lanjutkan proses penyiapan

Setelah Anda menyelesaikan prasyarat yang dijelaskan dalam dokumen ini, lanjutkan dengan salah satu dokumen berikut: