Isolasi untuk Cloud Service Mesh
Halaman ini menunjukkan cara mengonfigurasi mesh layanan dengan isolasi permintaan yang lebih baik untuk layanan backend dengan membuat konfigurasi isolasi.
Fitur ini memberikan dukungan isolasi tambahan untuk backend layanan Anda guna mencegah overflow lintas-region.
Secara default, Cloud Service Mesh menggunakan algoritma waterfall menurut wilayah untuk memutuskan ke mana traffic pengguna Anda harus dirutekan. Dengan algoritma ini, Cloud Service Mesh mengarahkan traffic ke region terdekat hingga backend berjalan pada batas kapasitas yang dikonfigurasi. Setelah itu, traffic akan mulai meluap ke region yang lebih jauh.
Dengan fitur ini, berdasarkan wilayah frontend dan konfigurasi isolasi, traffic dibatasi ke wilayah terdekat atau lokal dan tidak akan meluap jika wilayah terdekat kehabisan kapasitas. Hal ini membantu Anda mencegah potensi kegagalan beruntun dan membatasi potensi gangguan di region yang sama. Anda tetap mengelola konfigurasi layanan di tingkat global.
Penggunaan fitur ini bergantung pada kasus penggunaan Anda yang sebenarnya dan Anda harus mempelajari pertimbangan berikut dengan cermat sebelum menggunakannya:
- Jika backend Anda di suatu region kelebihan beban, Cloud Service Mesh mungkin masih mengirimkan traffic tambahan ke backend tersebut meskipun backend di region lain dapat menangani traffic. Artinya, setiap region individu lebih cenderung mengalami kelebihan beban karena traffic tambahan dan Anda perlu merencanakan dengan tepat.
- Traffic Anda masih dirutekan dengan panel kontrol global. Artinya, masih ada kemungkinan terjadinya kegagalan yang terkoordinasi secara global di beberapa region.
- Fitur ini dikonfigurasi dengan resource serviceLbPolicy. Semua pembatasan masih berlaku.
- Dengan mode isolasi STRICT, permintaan akan gagal jika tidak ada backend penayangan di region yang sama.
Ada dua skenario setelah menerapkan fitur ini:
Isolasi Terdekat
Isolasi Regional Terdekat adalah tempat frontend dengan backend yang ditempatkan bersama akan diisolasi hanya ke region tersebut. Jika tidak ada backend yang tersedia di lokasi lokal, backend akan terhubung ke region backend sambil mengoptimalkan latensi jaringan.
Isolasi Ketat
Isolasi Regional Ketat adalah tempat lokasi frontend hanya dapat menjangkau backend dalam region lokal. Frontend tanpa backend penayangan di region lokal akan menghentikan semua trafficnya.
Mengaktifkan isolasi
gcloud
Lakukan langkah-langkah berikut untuk membuat konfigurasi isolasi menggunakan Google Cloud CLI.
Jalankan perintah berikut untuk membuat
serviceLbPolicy
:gcloud network-services service-lb-policies create my-isolation-policy \ --isolation-config-granularity=REGION \ --isolation-config-mode=ISOLATION_MODE \ --location=global
Ganti ISOLATION_MODE dengan salah satu opsi berikut:
- TERDEKAT: Traffic dikirim ke region terdekat.
- STRICT: Traffic gagal jika tidak ada backend penayangan yang tersedia di region yang sama dengan frontend.
Jika tidak diberikan secara eksplisit, NEAREST adalah nilai default. Perhatikan bahwa Anda hanya dapat menentukan kolom ini jika tanda
--isolation-granularity
juga disetel.Atau, jika Anda memiliki kebijakan yang sudah ada, perbarui dengan perintah berikut:
gcloud network-services service-lb-policies update POLICY_NAME \ --isolation-config-granularity=REGION \ --isolation-config-mode=ISOLATION_MODE \ --location=global
Ganti POLICY_NAME dengan nama kebijakan yang sudah ada.
Setelah resource
serviceLbPolicy
dibuat atau diperbarui, lampirkan ke resourcebackendService
Anda:gcloud compute backend-services update BACKEND_SERVICE_NAME \ โโservice-lb-policy POLICY_URL
Ganti BACKEND_SERVICE_NAME dengan nama Layanan Backend Anda.
Menonaktifkan isolasi
Untuk menonaktifkan fitur ini, Anda memiliki dua opsi:
- Tetapkan
isolationConfigs
ke tidak ditentukan. - Hapus
ServiceLbPolicy
dari layanan jika ini adalah satu-satunya fitur yang Anda aktifkan dengan kebijakan ini
Setel isolationConfigs
ke tidak ditentukan
Jalankan perintah berikut untuk menyetel isolationConfigs
ke tidak ditentukan:
gcloud network-services service-lb-policies update my-isolation-policy \
--isolation-config-granularity=unspecified \
--isolation-config-mode=unspecified \
--location=global
Menghapus ServiceLbPolicy
dari layanan
Jalankan perintah berikut untuk menghapus ServiceLbPolicy
:
gcloud network-services service-lb-policies delete my-isolation-policy --location=global
Dukungan, Diagnosis, dan Pemecahan Masalah
Bagian ini menjelaskan potensi masalah setelah mengaktifkan fitur ini.
Backend kelebihan beban
Fitur ini memberikan dukungan isolasi, sehingga traffic tidak akan dialihkan ke region jarak jauh jika region lokal penuh. Jadi, beberapa backend Anda bisa kelebihan beban jika fitur ini diaktifkan. Jika ini bukan perilaku yang Anda cari, pertimbangkan untuk menonaktifkan fitur ini. Anda juga dapat mempertimbangkan untuk mengaktifkan penskalaan otomatis untuk menangani kelebihan beban backend dengan lebih baik.
Traffic dialihkan
Fitur ini mencegah luapan traffic berbasis kapasitas. Jadi, jika backend Anda kelebihan beban sebelum mengaktifkan fitur ini, traffic mungkin sudah dialihkan ke region terpencil. Dalam hal ini, mengaktifkan fitur ini dapat menyebabkan traffic tersebut dialihkan kembali.
Traffic tidak dialihkan
Fitur ini mencegah luapan traffic berbasis kapasitas. Jadi, jika backend Anda tidak kelebihan beban sebelum mengaktifkan fitur ini, kemungkinan besar region terdekat dapat menangani semua traffic. Dalam hal ini, mengaktifkan fitur ini mungkin tidak menyebabkan perubahan traffic dalam jangka pendek.
Traffic dialihkan setelah backend ditambahkan ke atau dihapus dari suatu region
Jika fitur ini diaktifkan, traffic dapat dialihkan jika backend baru ditambahkan ke suatu wilayah. Hal ini sudah diperkirakan karena Cloud Service Mesh akan mencoba merutekan traffic ke backend ini untuk mengoptimalkan latensi jaringan secara keseluruhan. Demikian pula, saat backend terakhir dihapus, Cloud Service Mesh akan mulai mengirim traffic ke region jarak jauh. Ini juga merupakan perilaku yang diharapkan.
Permintaan gagal
Jika mode isolasi STRICT diaktifkan dan tidak ada backend yang melayani di region yang sama dengan frontend, traffic akan gagal. Jika bukan perilaku yang Anda inginkan, pastikan Anda memiliki backend di setiap region tempat Anda mengharapkan traffic dikirim.