Bersiap untuk menyiapkan Cloud Service Mesh dengan Envoy
Penyiapan Cloud Service Mesh mencakup fase berikut:
- Memberikan izin, mengaktifkan Traffic Director API, dan—jika Anda menggunakan Compute Engine—mengonfigurasi Cloud DNS.
- Men-deploy aplikasi Anda dengan proxy Envoy.
- Membuat layanan dan aturan perutean yang menentukan cara traffic berjalan melalui mesh layanan Anda.
Dokumen ini menjelaskan fase pertama, dan berlaku saat Anda menggunakan API lama. Fase kedua dan ketiga dibahas dalam panduan khusus platform yang tercantum di Lanjutkan proses penyiapan di bagian selanjutnya dalam dokumen ini.
Sebelum membaca panduan ini, pahami ringkasan Cloud Service Mesh. Jika Anda menggunakan API perutean layanan, tinjau ringkasan API perutean layanan.
Prasyarat
Baik Anda berencana menggunakan Cloud Service Mesh untuk mengonfigurasi proxy Envoy yang berjalan bersama aplikasi di instance mesin virtual (VM), container, atau campuran keduanya, Anda harus menyelesaikan tugas berikut terlebih dahulu:
- Aktifkan penagihan.
- Tentukan cara Anda ingin menginstal Envoy.
- Berikan izin yang diperlukan.
- Aktifkan Traffic Director API untuk project Anda.
- Jika Anda menggunakan Compute Engine, aktifkan Cloud DNS API dan konfigurasi Cloud DNS.
- Pastikan akun layanan yang digunakan oleh proxy Envoy memiliki izin yang memadai untuk mengakses Traffic Director API.
Bagian berikut memberikan petunjuk untuk setiap tugas.
Aktifkan penagihan
Pastikan penagihan diaktifkan untuk project Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan, menonaktifkan, atau mengubah penagihan untuk project.
Tentukan cara menginstal Envoy
Cloud Service Mesh memungkinkan Anda menginstal proxy Envoy dan mengelola lapisan infrastruktur ini:
Di Compute Engine, Anda dapat menambahkan Envoy secara otomatis ke aplikasi yang berjalan di VM. Anda menggunakan template VM yang menginstal Envoy, menghubungkannya ke Cloud Service Mesh, dan mengonfigurasi jaringan VM Anda.
Di Google Kubernetes Engine (GKE), Anda dapat otomatis menambahkan proxy sidecar Envoy ke Pod layanan Anda. Anda menginstal injector sidecar Envoy ke cluster, yang menambahkan proxy sidecar Envoy, menghubungkannya ke Cloud Service Mesh, dan mengonfigurasi jaringan container Anda.
Terakhir, Anda juga dapat menggunakan solusi deployment Envoy dari penyedia pihak ketiga dengan Cloud Service Mesh. Salah satu contoh penawaran tersebut adalah GetEnvoy, yang menyediakan pendekatan berbasis pengelola paket untuk menginstal dan mengupdate proxy Envoy Anda.
Tentang pemberian versi Envoy
Envoy harus berupa versi 1.9.1 atau yang lebih baru agar dapat berfungsi dengan Cloud Service Mesh. Sebaiknya selalu gunakan versi Envoy terbaru untuk memastikan bahwa kerentanan keamanan yang diketahui telah diatasi.
Jika Anda memutuskan untuk men-deploy Envoy menggunakan salah satu metode otomatis kami, kami akan menangani tugas ini untuk Anda sebagai berikut:
Saat Anda menggunakan deployment Envoy otomatis dengan VM Compute Engine, versi Envoy yang diinstal adalah versi 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 update bertahap untuk mengganti VM yang ada dan mendapatkan versi terbaru.
Saat Anda menggunakan injector sidecar Envoy dengan GKE, injector dikonfigurasi untuk menggunakan Envoy versi terbaru yang telah kami validasi agar berfungsi dengan Cloud Service Mesh. Saat sidecar disuntikkan bersama Pod workload Anda, sidecar akan menerima Envoy versi ini. Jika Anda ingin mengambil versi Envoy yang lebih baru, perbarui injector sidecar Envoy.
Untuk mengetahui informasi tentang versi Envoy tertentu, lihat Histori versi. Untuk mengetahui informasi tentang kerentanan keamanan, lihat Nasihat Keamanan.
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 Anda memiliki
peran Pemilik atau Editor (roles/owner atau
roles/editor) project tempat Anda
mengaktifkan Cloud Service Mesh, Anda akan otomatis memiliki izin yang benar.
Jika tidak, Anda harus memiliki semua peran IAM Compute Engine yang ditampilkan dalam tabel berikut. Jika memiliki peran ini, Anda juga memiliki izin terkaitnya, seperti yang dijelaskan dalam dokumentasi IAM Compute Engine.
| Tugas | Peran yang diperlukan |
|---|---|
| Tetapkan kebijakan IAM untuk akun layanan. | Service Account Admin
( roles/iam.serviceAccountAdmin) |
| Aktifkan Cloud Service Mesh. | Service Usage Admin
( roles/serviceusage.serviceUsageAdmin) |
| Buat jaringan, subnet, dan komponen load balancer. | Compute Network Admin
( roles/compute.networkAdmin) |
| Menambahkan dan menghapus aturan firewall. | Compute Security Admin
( roles/compute.securityAdmin) |
| Buat instance. | Compute Instance Admin
( roles/compute.instanceAdmin) |
Kumpulan node GKE atau VM Compute Engine harus memiliki cakupan
https://www.googleapis.com/auth/cloud-platform. Untuk mengetahui informasi selengkapnya, lihat
Memecahkan masalah deployment yang menggunakan Envoy.
Dengan xDS v3, berikan peran roles/trafficdirector.client kepada akun layanan yang digunakan oleh klien Envoy Cloud Service Mesh.
Mengaktifkan Traffic Director API
Konsol
Di konsol Google Cloud , buka halaman API Library untuk project Anda.
Di kolom Search for APIs & Services, masukkan
Traffic Director.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.
Di halaman Traffic Director API, klik Enable.
gcloud
Jalankan perintah berikut:
gcloud services enable trafficdirector.googleapis.com
Aktifkan Cloud DNS API dan konfigurasi Cloud DNS
Gunakan petunjuk ini jika Anda mengonfigurasi Cloud Service Mesh di Compute Engine. Anda harus mengaktifkan Cloud DNS API dan mengonfigurasi Cloud DNS untuk resolusi nama DNS.
Untuk mengetahui informasi latar belakang tentang Cloud Service Mesh dan resolusi DNS, lihat Cloud Service Mesh dan resolusi nama DNS.
Pertama, gunakan petunjuk berikut untuk mengaktifkan Cloud DNS API.
Konsol
Di konsol Google Cloud , buka halaman API Library untuk project Anda.
Di kolom Search for APIs & Services, masukkan
DNS.Di daftar hasil penelusuran, klik Cloud DNS API. Jika Anda tidak melihat Cloud DNS API tercantum, berarti Anda tidak memiliki izin yang diperlukan untuk mengaktifkan Cloud DNS API.
Di halaman Cloud DNS API, klik Enable.
gcloud
Jalankan perintah berikut:
gcloud services enable dns.googleapis.com
Selanjutnya, konfigurasi zona pribadi terkelola Cloud DNS. Gunakan petunjuk di Membuat zona pribadi.
Aktifkan akun layanan untuk mengakses Traffic Director API
Saat Anda menyiapkan bidang data dan menghubungkannya ke Cloud Service Mesh, klien xDS (misalnya, proxy Envoy) 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 diberi otorisasi dengan benar:
- Untuk VM Compute Engine, klien xDS menggunakan akun layanan yang ditetapkan ke VM.
- Untuk GKE, jika
Workload Identitytidak diaktifkan, klien xDS akan menggunakan akun layanan yang ditetapkan ke node GKE yang mendasarinya. - Jika
Workload Identitydiaktifkan, klien xDS menggunakan akun layanan Google yang terikat dengan akun layanan Kubernetes yang ditetapkan ke Pod.
Anda memerlukan izin berikut. Hanya xDS v3 yang didukung. Jika Anda menggunakan xDS v2, Anda harus bermigrasi ke xDS v3. Untuk mengetahui informasi tentang cara bermigrasi, lihat Bermigrasi dari xDS v2 ke xDS v3.
Saat Anda menggunakan xDS v3, akun layanan yang digunakan oleh klien Anda harus memiliki izin trafficdirector.networks.reportMetrics, trafficdirector.rateLimitDomains.reportMetrics, dan trafficdirector.networks.getConfigs. Anda dapat menggunakan
peran Klien Traffic Director
(roles/trafficdirector.client) IAM, yang mencakup izin ini.
Konsol
Di konsol Google Cloud , buka halaman IAM & Admin.
Pilih project Anda.
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 padanya. Klik Add, lalu 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 Roles.
Luaskan peran. Untuk akun layanan yang ingin Anda edit, 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 projectSERVICE_ACCOUNT_EMAIL: email yang terkait dengan akun layanan
Lanjutkan proses penyiapan
Setelah menyelesaikan langkah-langkah prasyarat, Anda dapat mulai menyiapkan mesh layanan.