Mempersiapkan penyiapan di API perutean layanan dengan Envoy dan workload tanpa proxy

Dokumen ini memberikan informasi tentang tugas prasyarat untuk menyiapkan Cloud Service Mesh menggunakan API perutean layanan dengan proxy Envoy atau dengan gRPC tanpa proxy sebagai bidang data.

Penyiapan Cloud Service Mesh mencakup beberapa fase. Dokumen ini menjelaskan fase pertama: petunjuk untuk mempersiapkan konfigurasi Cloud Service Mesh dengan instance VM atau aplikasi gRPC tanpa proxy. Fase tambahan dibahas dalam panduan khusus platform yang tercantum di bagian Melanjutkan proses penyiapan nanti dalam dokumen ini.

Sebelum membaca panduan ini, pahami dokumen berikut, yang memberikan ringkasan penggunaan Cloud Service Mesh dengan API perutean layanan dan Gateway API:

Prasyarat

Siapkan lingkungan Anda dengan menyelesaikan tugas berikut:

  1. Siapkan project agar sesuai dengan kebutuhan bisnis Anda.
  2. Aktifkan penagihan.
  3. Berikan izin yang diperlukan.
  4. Aktifkan Traffic Director API dan API lainnya untuk project Anda.
  5. Pastikan akun layanan memiliki izin yang memadai untuk mengakses Traffic Director API.
  6. Aktifkan Cloud DNS API dan konfigurasi Cloud DNS.

Bagian berikut memberikan petunjuk untuk setiap tugas.

Menyiapkan project

Untuk menyiapkan dan mengelola project, lihat Membuat dan mengelola project dan dokumentasi terkait.

Mengaktifkan penagihan

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

Memberikan izin IAM yang diperlukan

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

Jika tidak, Anda harus memiliki semua peran IAM yang ditampilkan dalam 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)
Mengaktifkan 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)
Mengizinkan akses ke akun layanan. Pengguna Akun Layanan
(roles/iam.serviceAccountUser)
Mengaktifkan akun layanan untuk melakukan tugas yang diperlukan. Pengguna Akun Layanan
(roles.trafficdirector.client)

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

Mengaktifkan akun layanan untuk mengakses Traffic Director API

Saat Anda menyiapkan bidang data dan menghubungkannya ke Cloud Service Mesh, klien xDS Anda, baik proxy Envoy maupun klien gRPC tanpa proxy, 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 diotorisasi dengan benar.

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

Kecuali jika Anda mengubah konfigurasi, Google Cloud menggunakan akun layanan default Compute Engine.

Untuk memberikan akses akun layanan ke Traffic Director API, gunakan petunjuk berikut.

Konsol

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

    Buka IAM &Admin

  2. Pilih project Anda.

  3. Identifikasi akun layanan tempat Anda ingin menambahkan peran:

    • Jika akun layanan belum ada dalam daftar Anggota, berarti akun layanan tersebut tidak memiliki peran yang ditetapkan pada akun tersebut. Klik Tambahkan dan masukkan alamat email akun layanan.
    • Jika akun layanan sudah ada di daftar Anggota, 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 Lainnya > Klien Traffic Director.

  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

Mengaktifkan API yang diperlukan

Aktifkan API yang diperlukan berikut.

  • osconfig.googleapis.com
  • trafficdirector.googleapis.com
  • compute.googleapis.com
  • networkservices.googleapis.com

Untuk mengaktifkan API yang diperlukan, gunakan petunjuk berikut.

Konsol

  1. Di Google Cloud konsol, buka halaman Library API 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, berarti Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Traffic Director API.

  4. Di halaman Traffic Director API, klik Enable.

  5. Di kolom Search for APIs &Services, masukkan OS Config.

  6. Di daftar hasil penelusuran, klik OS Config. Jika Anda tidak melihat OS Config API tercantum, berarti Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Traffic Director API.

  7. Di halaman OS Config API, klik Enable.

  8. Di kolom Search for APIs &Services, masukkan Compute.

  9. Di daftar hasil penelusuran, klik Compute Engine API. Jika Anda tidak melihat Compute Engine API tercantum, berarti Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Compute Engine API.

  10. Di halaman Compute Engine API, klik Enable.

  11. Di kolom Search for APIs &Services, masukkan Network Services.

  12. Di daftar hasil penelusuran, klik Network Services API. Jika Anda tidak melihat Network Services API tercantum, berarti Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Network Services API.

  13. Di halaman Network Services API, klik Enable.

gcloud

Jalankan perintah berikut:

gcloud services enable osconfig.googleapis.com \
trafficdirector.googleapis.com \
compute.googleapis.com \
networkservices.googleapis.com

Versi xDS

API perutean layanan mengharuskan Anda menggunakan xDS v3. Untuk mengetahui informasi tentang cara mengupdate deployment dari xDS v2 ke xDS v3, lihat API bidang kontrol xDS.

Persyaratan tambahan dengan proxy Envoy

Bagian ini menjelaskan persyaratan tambahan untuk menggunakan Cloud Service Mesh dengan API perutean layanan dan proxy Envoy. Jika Anda melakukan deployment dengan gRPC tanpa proxy, lihat Persyaratan tambahan dengan gRPC tanpa proxy.

Cara Envoy diinstal

Selama proses deployment Cloud Service Mesh, Anda membuat template VM yang secara otomatis menginstal Envoy di VM tempat aplikasi Anda berjalan.

Tentang versi Envoy

Envoy harus versi 1.20.0 atau yang lebih baru agar dapat berfungsi dengan Cloud Service Mesh. Sebaiknya selalu gunakan versi Envoy terbaru untuk memastikan kerentanan keamanan yang diketahui dapat dikurangi.

Jika Anda memutuskan untuk men-deploy Envoy menggunakan salah satu metode otomatis kami, kami akan menangani tugas ini untuk Anda sebagai berikut:

Deployment Envoy otomatis dengan VM Compute Engine menginstal versi Envoy yang telah kami validasi agar berfungsi dengan Cloud Service Mesh. Saat VM baru dibuat menggunakan template instance, VM akan menerima versi terbaru yang telah kami validasi. Jika memiliki VM yang berjalan lama, Anda dapat menggunakan rolling update untuk mengganti VM yang ada dan mendapatkan versi terbaru.

Untuk mengetahui informasi tentang versi Envoy tertentu, lihat Histori versi. Untuk mengetahui informasi tentang kerentanan keamanan, lihat Saran Keamanan.

Persyaratan tambahan dengan gRPC tanpa proxy

Bagian ini menjelaskan persyaratan tambahan untuk menggunakan Cloud Service Mesh dengan API perutean layanan dan gRPC tanpa proxy. Jika Anda melakukan deployment dengan proxy Envoy, lihat Persyaratan tambahan dengan proxy Envoy.

Proses keseluruhan dengan gRPC tanpa proxy

Ikuti prosedur keseluruhan ini untuk menyiapkan aplikasi gRPC tanpa proxy di mesh layanan:

  1. Update klien gRPC Anda ke gRPC versi terbaru, dengan patch terbaru.
  2. Update skema pemroses nama gRPC klien Anda saat Anda membuat saluran dan menentukan file bootstrap Cloud Service Mesh.
  3. Konfigurasi 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 di FAQ gRPC. Sebaiknya gunakan gRPC versi terbaru untuk memastikan kerentanan keamanan yang diketahui dapat dikurangi. 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 penerapan dan versi gRPC tercantum di GitHub. Untuk mengetahui daftar bahasa dan fitur gRPC yang didukung dengan layanan Cloud Service Mesh dan layanan gRPC tanpa proxy, lihat Fitur Cloud Service Mesh.

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

Mengupdate klien gRPC

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

Tambahkan pemroses nama 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> 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 pemroses nama gRPC untuk menggunakan xds

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

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

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

Membuat dan mengonfigurasi file bootstrap

Skema pemroses 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 membuat file bootstrap. Untuk memudahkan, Anda dapat menggunakan generator bootstrap Cloud Service Mesh gRPC versi terbaru.

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 di file bootstrap.

Kolom Nilai dan deskripsi
xds_servers Daftar server xDS. gRPC hanya menggunakan server pertama dalam daftar.
server_uri Tentukan setidaknya satu. gRPC mencoba terhubung hanya ke server xDS dalam daftar xds_servers. Nilai default-nya 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 mendapatkan kredensial, lihat Cara kerja Kredensial Default Aplikasi.
server_features Daftar fitur yang didukung oleh server, seperti dukungan xDS v3. Nilai default-nya kosong.
node Informasi tentang klien yang terhubung ke server xDS.
id

The id must be in the following format as shown in the preceding example:

projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID

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

metadata Informasi khusus untuk server xDS.
TRAFFICDIRECTOR_MESH_NAME Jika kolom kosong atau tidak ditentukan, nilainya akan ditetapkan ke default.
locality Zona tempat klien gRPC berjalan. Google Cloud

Melanjutkan proses penyiapan

Setelah menyelesaikan prasyarat yang dijelaskan dalam dokumen ini, lanjutkan dengan salah satu dokumen ini jika Anda mengonfigurasi Cloud Service Mesh dengan API perutean layanan: