Isolasi untuk Cloud Service Mesh

Halaman ini menunjukkan cara mengonfigurasi service mesh dengan isolasi permintaan yang lebih baik untuk layanan backend Anda dengan membuat konfigurasi isolasi.

Fitur ini memberikan dukungan isolasi tambahan untuk backend layanan Anda guna mencegah luapan lintas region.

Secara default, Cloud Service Mesh menggunakan algoritma waterfall menurut region untuk menentukan ke mana traffic pengguna Anda harus dirutekan. Dengan algoritma ini, Cloud Service Mesh merutekan 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 region frontend dan konfigurasi isolasi Anda, traffic dibatasi ke region terdekat atau lokal dan tidak akan meluap jika region terdekat kehabisan kapasitas. Hal ini membantu Anda mencegah potensi kegagalan berjenjang dan membatasi potensi pemadaman di region yang sama. Jika tidak, Anda masih mengelola konfigurasi layanan di tingkat global.

diagram isolasi

Keputusan untuk menggunakan fitur ini atau tidak 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 tersebut. Artinya, setiap region lebih mungkin kelebihan beban karena traffic tambahan dan Anda harus membuat rencana yang sesuai.
  • Traffic Anda masih dirutekan dengan bidang kontrol global. Artinya, masih ada kemungkinan kegagalan yang dikoordinasikan secara global di beberapa region.
  • Fitur ini dikonfigurasi dengan resource serviceLbPolicy. Semua batasan 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.

Diagram isolasi terdekat

Isolasi Ketat

Isolasi Regional Ketat adalah tempat lokasi frontend hanya dapat menjangkau backend dalam region lokal. Frontend tanpa backend penayangan di region lokal akan menghapus semua traffic-nya.

Diagram isolasi ketat

Mengaktifkan isolasi

gcloud

Lakukan langkah-langkah berikut untuk membuat konfigurasi isolasi menggunakan Google Cloud CLI.

  1. 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:

    1. NEAREST: Traffic dikirim ke region terdekat.
    2. 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 flag --isolation-granularity juga ditetapkan.

    Atau, jika Anda memiliki kebijakan yang 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 ada.

  2. Setelah resource serviceLbPolicy dibuat atau diperbarui, lampirkan ke resource backendService 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:

  1. Tetapkan isolationConfigs ke tidak ditentukan.
  2. Hapus ServiceLbPolicy dari layanan jika ini adalah satu-satunya fitur yang Anda aktifkan dengan kebijakan ini

Menetapkan isolationConfigs ke tidak ditentukan

Jalankan perintah berikut untuk menetapkan 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 mungkin 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 guna 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 jarak jauh. Dalam hal ini, mengaktifkan fitur ini dapat menyebabkan traffic ini dialihkan kembali.

Traffic tidak dialihkan

Fitur ini mencegah luapan traffic berbasis kapasitas. Jadi, jika backend Anda tidak kelebihan beban sebelum mengaktifkan fitur ini, kemungkinan region terdekat dapat menangani semua traffic. Dalam hal ini, mengaktifkan fitur ini mungkin tidak menyebabkan pengalihan traffic dalam jangka pendek.

Traffic dialihkan setelah backend ditambahkan ke atau dihapus dari region

Saat fitur ini diaktifkan, traffic dapat dialihkan jika backend baru ditambahkan ke region. Hal ini diharapkan 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 mengirimkan 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 diperkirakan akan gagal. Jika ini bukan perilaku yang Anda inginkan, pastikan Anda memiliki backend di setiap region tempat Anda ingin traffic dikirim.