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.

diagram isolasi

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.

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 menghentikan semua trafficnya.

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

  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

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.