Opsi untuk penyiapan VM Compute Engine menggunakan deployment Envoy otomatis
Panduan ini memberikan informasi tentang opsi dan tugas tambahan untuk deployment Envoy otomatis.
Opsi pembuatan template instance tambahan
Saat membuat template instance untuk deployment proxy Envoy otomatis, Anda dapat menggunakan parameter berikut untuk menentukan beberapa aspek deployment dan perilaku proxy.
| Parameter | Nilai dan Deskripsi | Wajib diisi atau opsional |
|---|---|---|
--service-proxy |
enabledMengontrol apakah proxy dan agen layanan diinstal dan dikonfigurasi di VM. |
Diperlukan jika Anda ingin men-deploy dan mengonfigurasi proxy layanan secara otomatis. Jika Anda menghapus setelan ini, proxy layanan tidak akan diinstal atau dikonfigurasi. |
--service-proxy:serving-ports |
Daftar port yang dipisahkan dengan titik koma. Port tempat aplikasi/workload Anda melayani. Proxy layanan mencegat traffic masuk, lalu meneruskannya ke port penayangan yang ditentukan di localhost. |
Opsional Jika Anda menghapus tanda ini, proxy layanan hanya menangani traffic keluar dari beban kerja Anda. Traffic masuk tidak ditangani oleh proxy layanan. |
--service-proxy:proxy-port |
Satu port. Port tempat proxy layanan mendengarkan. VM mencegat traffic dan mengalihkannya ke port ini untuk ditangani oleh proxy layanan. |
Opsional. Jika Anda menghapus flag ini, nilai defaultnya adalah 15001 |
--service-proxy:network |
Nama jaringan VPC yang valid. Jaringan Google Cloud VPC yang digunakan oleh bidang kontrol proxy layanan untuk membuat konfigurasi dinamis bagi proxy layanan. |
Wajib jika VM berada di lebih dari satu jaringan; jika tidak, parameter ini bersifat opsional. Jika Anda tidak menggunakan flag ini, nilai yang ditentukan menggunakan parameter --network selama pembuatan template instance VM akan digunakan. |
--service-proxy:tracing |
ON atau OFF Memungkinkan proxy layanan membuat informasi pelacakan terdistribusi. Jika disetel ke ON, bidang kontrol proxy layanan akan membuat konfigurasi yang memungkinkan penelusuran berbasis ID permintaan.Untuk mengetahui informasi selengkapnya, lihat dokumentasi generate_request_id untuk proxy Envoy. |
Opsional. Jika Anda menghapus tanda ini, pelacakan tidak akan diaktifkan. |
--service-proxy:access-log |
Jalur file untuk log akses yang dikirim ke proxy layanan oleh bidang kontrol. Semua permintaan masuk dan keluar dicatat dalam file ini. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Log akses file untuk proxy Envoy. |
Opsional. Tidak ada nilai default. Jika Anda tidak menentukan jalur file, log tidak akan dibuat. |
--service-proxy:intercept-all-outbound-traffic (Pratinjau) |
Memungkinkan pencegatan semua traffic keluar oleh proxy layanan, lalu mengalihkan ke host eksternal. Gunakan gcloud beta dengan opsi ini. |
Opsional. |
--service-proxy:exclude-outbound-ip-ranges (Pratinjau) |
Daftar alamat IP atau rentang CIDR yang dipisahkan dengan titik koma (;), yang ditentukan di dalam tanda kutip ("), yang harus dikecualikan dari pengalihan. Hanya berlaku jika tanda intercept-all-outbound-traffic disetel. Gunakan gcloud beta dengan opsi ini.Misalnya: exclude-outbound-ip-ranges="8.8.8.8;129.168.10.0/24" |
Opsional. |
--service-proxy:exclude-outbound-port-ranges (Pratinjau) |
Daftar port atau rentang port yang dipisahkan titik koma (;), yang ditentukan di dalam tanda kutip ("), yang harus dikecualikan dari pengalihan. Hanya berlaku jika tanda intercept-all-outbound-traffic disetel. Gunakan gcloud beta dengan opsi ini.Misalnya: exclude-outbound-port-ranges="81;8080-8090" |
Opsional. |
--service-proxy:scope (Pratinjau) |
Opsi scope menentukan batas konfigurasi logis untuk resource Gateway.
Saat VM dimulai, proxy layanan berkomunikasi dengan Cloud Service Mesh untuk mengambil informasi perutean yang sesuai dengan rute yang dilampirkan ke gateway dengan nama cakupan ini. Jika scope ditentukan, nilai jaringan akan diabaikan. Anda tidak dapat menentukan nilai scope dan mesh secara bersamaan. Gunakan gcloud beta dengan opsi ini. |
Opsional. |
--service-proxy:mesh (Pratinjau) |
Opsi mesh menentukan batas konfigurasi logis untuk resource Mesh.
Saat VM dimulai, proxy layanan berkomunikasi dengan Cloud Service Mesh untuk mengambil informasi perutean yang sesuai dengan rute yang dilampirkan ke Mesh dengan nama mesh ini. Jika mesh ditentukan, nilai jaringan akan diabaikan. Anda
tidak dapat menentukan nilai scope dan mesh secara bersamaan. Menggunakan gcloud beta dengan opsi ini |
Opsional. |
--service-proxy:project-number (Pratinjau) |
Opsi project-number menentukan project tempat resource Mesh dan Gateway
dibuat. Jika tidak ditentukan, project tempat instance berada akan digunakan. Hal ini hanya berlaku untuk API perutean layanan baru. |
Opsional. |
--service-proxy:use-regional-control-plane |
Memungkinkan VM terhubung ke endpoint regional Cloud Service Mesh. | Opsional. |
--service-proxy:envoy-bootstrap |
Mengambil jalur GCS file JSON yang akan digunakan sebagai konfigurasi bootstrap Envoy kustom. Misalnya, gs://gcs-bucket/bootstrap.json. |
Opsional. |
--service-proxy-labels |
Pasangan nilai kunci dalam format key=value.Label yang dapat Anda terapkan ke proxy layanan. Hal ini tercermin dalam metadata bootstrap proxy Envoy Anda. Label dapat berupa pasangan key=value apa pun yang ingin Anda tetapkan sebagai metadata proxy (misalnya, untuk digunakan dengan pemfilteran konfigurasi. Anda dapat menggunakan flag ini untuk label aplikasi dan versi, misalnya, app=review atau version=canary. Anda juga dapat menggunakannya bersama-sama.
|
Opsional. |
Misalnya, perintah gcloud berikut membuat template instance
yang disebut proxy-it. Instance yang dibuat dari template ini telah menginstal proxy Envoy dan agen proxy layanan.
gcloud compute instance-templates create proxy-it \
--service-proxy enabled,use-regional-control-plane
Dalam contoh berikut, template instance disebut proxy-it, proxy Envoy dan agen proxy layanan diinstal, port penayangan dan port proxy ditetapkan, pelacakan diaktifkan, dan label ditentukan.
gcloud compute instance-templates create proxy-it \ --service-proxy enabled,serving-ports=8080,proxy-port=15001,tracing=ON \ --service-proxy-labels version=canary
Diagram berikut menggambarkan alur traffic saat Anda menentukan port penayangan sebagai 8080. Koneksi TCP masuk ke port 8080 dicegat oleh
iptables dan dialihkan ke proxy Envoy, yang kemudian meneruskannya ke
aplikasi di VM Anda yang memproses port TCP 8080. Selain itu:
- Semua koneksi keluar ke VIP layanan yang dikonfigurasi di Cloud Service Mesh dicegat oleh iptables, yang mengonfigurasi netfilter. Netfilter memastikan bahwa traffic yang sesuai yang melintasi stack jaringan dicegat dan dialihkan ke proxy Envoy. Traffic kemudian di-load balance berdasarkan cara Anda mengonfigurasi Cloud Service Mesh.
- Semua koneksi masuk lainnya tidak dicegat oleh iptables, dan diteruskan langsung ke layanan di VM.
- Semua koneksi ke endpoint eksternal diteruskan langsung ke alamat IP eksternal tanpa dicegat.
- Semua traffic UDP diteruskan langsung ke tujuan tanpa dicegat oleh iptables.
Hal ini diilustrasikan dalam diagram berikut.
Alur traffic dalam diagram adalah sebagai berikut:
- Traffic masuk dengan port tujuan
80, tidak dicegat dan dirutekan langsung ke layanan yang memproses port. - Traffic masuk dengan port tujuan
8080, dicegat dan dialihkan ke port pemroses Envoy. - Envoy meneruskan traffic dari (2) ke layanan 2 yang memproses di port localhost
8080. - Traffic keluar yang ditujukan ke VIP dan port aturan penerusan Cloud Service Mesh, dicegat dan dialihkan ke port listener Envoy.
- Envoy meneruskan traffic dari (4) ke endpoint backend layanan backend Cloud Service Mesh tujuan.
- Traffic keluar yang ditujukan ke VIP dan port non-Cloud Service Mesh, tidak dicegat, dan dirutekan langsung ke layanan eksternal.
Menggunakan label
Jika Anda ingin menentukan label yang akan digunakan dengan pemfilteran metadata Cloud Service Mesh atau mengaktifkan pencatatan akses untuk proxy Envoy, gunakan parameter --service-proxy-labels atau --service-proxy access-log.
Contoh:
gcloud compute instance-templates create td-vm-template-auto \ --service-proxy enabled,access-log=/var/log/envoy/access.log,network=default \ --service-proxy-labels myapp=review,version=canary
Proxy Envoy dapat mencegat port health check untuk layanan di VM. Jika Anda melakukannya, probe health check akan melaporkan aplikasi Anda dan proxy Envoy. Traffic tidak diarahkan ke VM jika proxy Envoy tidak berjalan dengan benar. Contoh:
gcloud compute instance-templates create td-vm-template-auto \ --service-proxy=enabled,serving-ports="80;8080"
Menggunakan proses update grup instance terkelola
Jika menggunakan proses otomatis untuk mengonfigurasi proxy Envoy, Anda dapat menggunakan proses update grup instance terkelola untuk mengupdate grup instance terkelola. Gunakan proses ini untuk:
- Tambahkan komponen proxy layanan ke grup instance terkelola yang ada dan daftarkan ke jaringan Cloud Service Mesh.
- Perbarui komponen proxy layanan di VM.
Sebelum melakukan update bertahap, lakukan hal berikut.
- Tetapkan pengosongan koneksi pada layanan backend ke nilai minimal 30 detik.
- Gunakan parameter
--min-ready, yang ditetapkan ke nilai 3 menit atau lebih, saat Anda memanggil updater. Parameter--min-readymembuat grup instance terkelola menunggu setelah VM diupdate sebelum melanjutkan untuk mengupdate VM berikutnya. Tanpa hal ini, VM yang baru dibuat tidak memiliki waktu untuk mem-booting Envoy dan agen proxy layanan sepenuhnya, dan update akan berjalan terlalu cepat.
Untuk melakukan update berkelanjutan pada grup instance terkelola, ikuti langkah-langkah berikut.
- Buat template instance baru, seperti yang dijelaskan di atas, dengan informasi proxy layanan. Versi asli template instance dapat digunakan untuk update jika berisi informasi proxy layanan dan tujuan Anda adalah mengupdate ke versi stabil terbaru dari software proxy.
- Lakukan update berkelanjutan pada grup instance terkelola. Pastikan Anda
menetapkan
REPLACEsebagai tindakan minimum yang harus dilakukan Updater. Grup instance menginstal software proxy versi terbaru dan mengonfigurasinya seperti yang ditentukan dalam template instance.
Anda juga dapat menghapus komponen proxy layanan dari grup instance terkelola menggunakan proses update:
Buat template instance baru tanpa menentukan tanda
--service-proxy.Lakukan update berkelanjutan menggunakan proses update grup instance terkelola.
Tindakan ini akan menghapus proxy Envoy dari VM Anda. Jika grup instance terkelola tersebut adalah satu-satunya MIG yang terpasang ke layanan backend, Anda mungkin ingin menghapus konfigurasi Cloud Service Mesh yang Anda buat saat menyiapkan Cloud Service Mesh.