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 jika Anda menggunakan API load balancing. Namun, kami sangat menyarankan Anda menggunakan API pemilihan rute layanan. Fase lainnya dibahas dalam fase khusus yang tercantum di bagian Melanjutkan proses penyiapan nanti pada bagian ini dokumen.
Sebelum Anda membaca panduan ini, biasa dengan dokumen-dokumen berikut, yang memberikan ringkasan penggunaan Cloud Service Mesh dengan gRPC tanpa proxy aplikasi:
- Ringkasan Cloud Service Mesh
- Ringkasan layanan Cloud Service Mesh dengan gRPC tanpa proxy
- Ringkasan API pemilihan rute layanan baru Cloud Service Mesh
Prasyarat
Siapkan lingkungan Anda dengan menyelesaikan tugas berikut:
- Aktifkan penagihan.
- Berikan izin yang diperlukan.
- Aktifkan Traffic Director API untuk project Anda.
- Pastikan akun layanan memiliki izin akses untuk mengakses Traffic Director API.
Bagian berikut memberikan petunjuk untuk setiap tugas.
Aktifkan penagihan
Pastikan penagihan diaktifkan untuk project Google Cloud Anda. Untuk selengkapnya informasi, 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 VM
instance dan memodifikasi jaringan untuk
mengonfigurasi Cloud Service Mesh. Jika Anda memiliki
peran proyek
Pemilik atau Editor (roles/owner
atau
roles/editor
) dalam project tempat Anda
mengaktifkan Cloud Service Mesh, Anda otomatis memiliki izin yang tepat.
Jika tidak, Anda harus memiliki semua elemen IAM peran yang ditampilkan dalam tabel berikut. Jika Anda memiliki peran tersebut, 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 komponen jaringan, subnet, dan 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. | Service Account User
( roles/iam.serviceAccountUser |
VM Compute Engine harus memiliki
https://www.googleapis.com/auth/cloud-platform
ruang lingkup proyek. Untuk informasi selengkapnya, lihat
Memecahkan masalah deployment yang menggunakan gRPC tanpa proxy.
Dengan xDS v3, berikan akun layanan yang digunakan oleh klien gRPC Cloud Service Mesh
peran roles/trafficdirector.client
.
Mengaktifkan Traffic Director API
Konsol
Di konsol Google Cloud, buka halaman Library API untuk project Anda.
Di bagian Search for APIs & Services, masukkan
Traffic Director
.Di daftar hasil penelusuran, klik Traffic Director API. Jika Anda tidak melihat Traffic Director API tersedia, ini berarti Anda tidak memiliki untuk mengaktifkan Traffic Director API.
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 menyiapkan bidang data dan menghubungkannya ke Cloud Service Mesh,
Klien xDS terhubung ke server xDS trafficdirector.googleapis.com
. Ini
Klien xDS memberikan identitas akun layanan
ke server xDS untuk memastikan bahwa
komunikasi antara bidang data dan bidang kontrol telah
diotorisasi.
Untuk VM Compute Engine, klien xDS menggunakan akun layanan yang ditetapkan ke VM.
Anda memerlukan izin berikut. Versi protokol xDS ditentukan dalam file bootstrap. Hanya xDS v3 yang didukung.
Jika menggunakan xDS v2, Anda harus bermigrasi ke xDS v3. Untuk informasi tentang cara bermigrasi, lihat Bermigrasi dari xDS v2 ke xDS v3.
Saat menggunakan xDS v3, akun layanan yang digunakan oleh aplikasi gRPC harus
memiliki trafficdirector.networks.reportMetrics
dan
Izin trafficdirector.networks.getConfigs
. Anda dapat menggunakan
Peran Klien Cloud Service Mesh IAM
(roles/trafficdirector.client
), yang menggabungkan kedua izin.
Konsol
Di Konsol Google Cloud, buka IAM & Admin kami.
Pilih project Anda.
Identifikasi akun layanan yang ingin Anda tambahi peran:
- Jika akun layanan belum ada di daftar Members, akun tersebut tidak memiliki peran apa pun yang ditetapkan. Klik Add dan masukkan alamat email akun layanan.
- Jika sudah ada di daftar Members, akun layanan memiliki peran yang sudah ada. Pilih akun layanan, lalu klik Tab Roles.
Luaskan peran. Untuk akun layanan yang ingin diedit, klik
Edit.Pilih peran Other > Cloud Service Mesh Client.
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
: masukkangcloud config get-value project
SERVICE_ACCOUNT_EMAIL
: email yang terkait dengan akun layanan
Selanjutnya, ikuti prosedur keseluruhan ini untuk menyiapkan aplikasi gRPC tanpa proxy dalam mesh layanan:
- Update klien gRPC ke gRPC versi terbaru, dengan patch.
- Perbarui setelan klien skema resolver nama gRPC saat Anda membuat saluran dan menentukan file bootstrap Cloud Service Mesh.
- Mengonfigurasi resource Cloud Service Mesh dan Cloud Load Balancing.
Dokumen ini memberikan informasi untuk menyelesaikan dua langkah pertama. Tujuan yang digunakan untuk langkah 3 tergantung pada apakah penggunaan deployment 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 informasi kerentanan keamanan dapat dimitigasi. Hal ini juga memastikan bahwa aplikasi Anda memiliki akses ke fitur terbaru yang didukung oleh Cloud Service Mesh. Tujuan fitur mesh layanan yang didukung dalam berbagai implementasi dan versi gRPC tercantum di GitHub. Untuk daftar bahasa dan fitur gRPC yang didukung dengan Cloud Service Mesh dan layanan gRPC tanpa proxy, lihat Fitur Cloud Service Mesh.
Cloud Service Mesh mempertahankan kompatibilitas dengan versi terbaru gRPC dan upaya agar kompatibel dengan versi gRPC dalam waktu kurang dari satu tahun lama, tunduk pada Persyaratan Layanan Google Cloud Platform.
Mengupdate klien gRPC
Update library gRPC di aplikasi Anda ke versi yang mendukung yang Anda perlukan. Untuk mengetahui detailnya, lihat bagian sebelumnya.
Tambahkan name-resolver xDS sebagai dependensi untuk 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
File build.gradle
. Ganti LATEST_GRPC_VERSION
dengan
versi terbaru
gRPC.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Jika Anda menggunakan Maven, tambahkan kode berikut ke bagian <dependencies>
dari 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.
Tetapkan resolver nama gRPC untuk menggunakan xds
Setel atau ubah aplikasi gRPC untuk menggunakan skema resolusi nama xds
di
URI target, bukan DNS atau skema resolver lainnya. Anda melakukan ini dengan
menggunakan awalan xds:///
pada nama target saat Anda membuat saluran gRPC.
Load balancing untuk klien gRPC didasarkan pada per saluran.
Sertakan nama layanan yang digunakan dalam URI target dalam
konfigurasi Cloud Service Mesh. Misalnya, di Java, Anda membuat
saluran Anda dengan menggunakan struktur ini, dengan nama layanan helloworld
:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Membuat dan mengonfigurasi file bootstrap
Skema resolver xds
memberi tahu aplikasi gRPC agar terhubung ke
Cloud Service Mesh untuk mendapatkan informasi konfigurasi untuk target
layanan. Oleh karena itu, lakukan tindakan berikut:
- Buat file bootstrap, seperti yang ditunjukkan dalam contoh berikut. File ini memberi tahu gRPC agar terhubung ke server xDS (Cloud Service Mesh) untuk mendapatkan konfigurasi untuk layanan tertentu.
- Menentukan variabel lingkungan bernama
GRPC_XDS_BOOTSTRAP
, dengan bootstrap dengan nama file sebagai nilai variabel lingkungan.
Petunjuk penyiapan memiliki contoh yang menunjukkan cara membuat file bootstrap. Untuk memudahkan, Anda dapat menggunakan versi terbaru generator bootstrap gRPC Cloud Service Mesh.
{i>File<i} bootstrap berisi informasi yang diperlukan untuk terhubung Cloud Service Mesh harus disertakan bersama aplikasi. Sampel 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 salah satunya. gRPC mencoba terhubung hanya ke xDS pertama
server 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
bagaimana kredensial diperoleh, lihat
Mulai menggunakan autentikasi. |
server_features |
Daftar fitur yang didukung oleh server, seperti Dukungan xDS v3. Nilai defaultnya kosong. |
node |
Informasi tentang klien yang terhubung ke server xDS. |
id |
projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID Berikan string unik sebagai nilai |
metadata |
Informasi khusus untuk server xDS. |
TRAFFICDIRECTOR_NETWORK_NAME |
Jika kolom kosong atau tidak ditentukan, maka nilai akan ditetapkan ke
default . |
locality |
Zona Google Cloud tempat klien gRPC berjalan. |
Melanjutkan proses penyiapan
Setelah Anda menyelesaikan prasyarat yang dijelaskan dalam dokumen ini, lanjutkan dengan salah satu dokumen berikut:
- Lanjutkan dengan Cloud Service Mesh Menyiapkan GKE dan layanan gRPC tanpa proxy
- Lanjutkan dengan Cloud Service Mesh Menyiapkan Compute Engine dan layanan gRPC tanpa proxy
- Lanjutkan dengan panduan penyiapan Cloud Service Mesh GKE Kubernetes Gateway API. Perhatikan bahwa fitur Gateway API masih dalam Pratinjau.