Service Extensions memungkinkan Anda menggunakan ekstensi untuk menginstruksikan Load Balancer Aplikasi yang didukung agar menggunakan plugin atau mengirim callout dari jalur data load balancing untuk memanggil layanan backend callout atau layanan Google. Halaman ini memberikan ringkasan tentang ekstensi Cloud Load Balancing.
Anda dapat mengonfigurasi Load Balancer Aplikasi untuk menggunakan jenis ekstensi berikut:
Ekstensi Edge membantu Anda memanipulasi header permintaan untuk memengaruhi pemilihan layanan backend dan konten yang disajikan Cloud CDN dari cache. Ekstensi ini dikonfigurasi untuk berjalan lebih awal dalam siklus proses pemrosesan permintaan untuk memengaruhi keputusan caching dan perutean, masing-masing, di edge.
Ekstensi rute membantu Anda memengaruhi pemilihan layanan backend. Ekstensi ini dikonfigurasi untuk berjalan lebih awal dalam siklus proses pemrosesan permintaan.
Ekstensi otorisasi membantu Anda mengirim permintaan otorisasi ke mesin otorisasi kustom Anda. Anda mengonfigurasi ini di akhir siklus pemrosesan tepat sebelum load balancer mengirim permintaan ke backend.
Ekstensi traffic membantu mendukung logika keamanan kustom tambahan dan kemampuan pengelolaan traffic. Anda mengonfigurasi ini setelah ekstensi otorisasi tetapi sebelum load balancer mengirim permintaan ke backend atau menerima respons dari backend.
Load Balancer Aplikasi yang didukung untuk ekstensi yang dikelola pengguna
Ekstensi Layanan mendukung ekstensi yang dikelola pengguna untuk Load Balancer Aplikasi berikut:
| Load Balancer Aplikasi | Ekstensi | |||||||
|---|---|---|---|---|---|---|---|---|
| Edge | Rute | Otorisasi | Traffic | |||||
| Plugin | Plugin | Info | Info | Plugin | Info | |||
| Load Balancer Aplikasi eksternal global | ✓ | ✓ | ✓ | ✓ | ||||
| Load Balancer Aplikasi eksternal regional | ✓ Pratinjau | ✓ | ✓ | ✓ Pratinjau | ✓ | |||
| Load Balancer Aplikasi internal regional | ✓ Pratinjau | ✓ | ✓ | ✓ Pratinjau | ✓ | |||
| Load Balancer Aplikasi internal lintas region | ✓ | ✓ | ✓ | ✓ | ✓ | |||
Titik ekstensibilitas di jalur data load balancing
Ekstensi Layanan mendukung ekstensi pada berbagai tahap jalur data load balancing.
Gambar 1 menunjukkan cara Service Extensions mendukung ekstensi pada tahap keamanan aplikasi dan pengelolaan traffic untuk Load Balancer Aplikasi eksternal global.
Gambar 2 menunjukkan cara Service Extensions mendukung ekstensi pada tahap perutean, keamanan aplikasi, dan pengelolaan traffic untuk jenis load balancer berikut: Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal regional, dan Load Balancer Aplikasi internal lintas-region.
Cara kerja ekstensi tepi
Ekstensi edge berjalan terlebih dahulu di jalur pemrosesan permintaan dan memungkinkan Anda menggunakan header permintaan untuk memengaruhi pemilihan layanan backend dan konten yang ditayangkan Cloud CDN dari cache.
Setelah memanggil ekstensi edge, load balancer akan melakukan hal berikut:
- Memilih layanan backend dengan mengevaluasi peta URL
- Menerapkan kebijakan keamanan Google Cloud Armor
- Melakukan pencarian cache dan menyajikan dari cache jika ada cache yang ditemukan
- Menerapkan kebijakan Cloud Armor untuk layanan backend yang dipilih
- Menerapkan kebijakan CORS
- Menerapkan kebijakan afinitas sesi stateful
- Menerapkan kebijakan Identity-Aware Proxy (IAP) untuk layanan backend yang dipilih
- Ekstensi otorisasi panggilan, jika ada yang dikonfigurasi di jalur pemrosesan layanan backend yang dipilih
- Melakukan injeksi kesalahan
- Memanggil ekstensi lalu lintas panggilan, jika ada
- Melakukan penulisan ulang URL
- Melakukan manipulasi header sesuai dengan peta URL dan menambahkan variabel header permintaan kustom
- Melakukan pengalihan atau perutean ke layanan backend yang dipilih sambil menerapkan kebijakan waktu tunggu dan percobaan ulang di peta URL dan setelan load balancing untuk layanan backend
- Melakukan duplikasi permintaan
Cara kerja ekstensi rute
Ekstensi rute dijalankan terlebih dahulu di jalur pemrosesan permintaan saat load balancer menerima header permintaan dan sebelum mengevaluasi peta URL.
Setelah load balancer memanggil ekstensi rute untuk permintaan, load balancer akan melakukan hal berikut:
- Memilih layanan backend dengan mengevaluasi peta URL
- Menerapkan kebijakan Cloud Armor untuk layanan backend yang dipilih
- Menerapkan kebijakan IAP untuk layanan backend yang dipilih
- Melakukan injeksi kesalahan
- Melakukan transformasi header permintaan dan menyelesaikan variabel header permintaan kustom
- Memanggil ekstensi traffic, jika ada di jalur pemrosesan layanan backend yang dipilih
- Melakukan penulisan ulang URL
- Melakukan pengalihan atau perutean ke layanan backend yang dipilih dan menerapkan kebijakan waktu tunggu dan percobaan ulang di peta URL dan setelan load balancing lainnya untuk layanan backend
Cara kerja ekstensi otorisasi
Anda dapat mengonfigurasi kebijakan otorisasi dengan ekstensi otorisasi untuk mendelegasikan keputusan otorisasi ke mesin otorisasi kustom. Untuk mengetahui informasi selengkapnya tentang kebijakan otorisasi, lihat Ringkasan kebijakan otorisasi.
Ekstensi otorisasi dipanggil di jalur permintaan setelah ekstensi rute dipanggil dan backend untuk permintaan telah dipilih. Ekstensi ini tidak dapat memengaruhi pemilihan layanan backend.
Dalam Pratinjau, untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal regional, kebijakan otorisasi dipanggil setelah ekstensi rute. Saat mendesain ekstensi otorisasi, pertimbangkan poin-poin berikut:
Ekstensi yang dipanggil oleh kebijakan otorisasi jenis profil
REQUEST_AUTHZhanya menerima dan mengevaluasi header permintaan HTTP dengan protokolext_procatauext_authz.Ekstensi yang dipanggil oleh kebijakan otorisasi jenis profil
CONTENT_AUTHZmenerima header, isi, dan trailer permintaan dan respons. Header ini harus dikonfigurasi dalamFULL_DUPLEX_STREAMEDmode pemrosesan isi protokolext_proc.
Di jalur data, ekstensi otorisasi berdasarkan kebijakan otorisasi permintaan berjalan sebelum ekstensi otorisasi berdasarkan kebijakan otorisasi konten.
Cara kerja ekstensi lalu lintas
Load balancer menjalankan ekstensi traffic terakhir di jalur pemrosesan permintaan dan pertama di jalur pemrosesan respons.
Ekstensi ini memungkinkan Anda mengubah header dan payload permintaan dan respons tanpa memengaruhi pilihan layanan backend. Anda juga dapat menggunakan ekstensi traffic untuk pencatatan log kustom dengan menentukan informasi yang ingin Anda catat, format, dan penyedia eksternal.
Sebelum load balancer memanggil ekstensi traffic di jalur permintaan untuk suatu permintaan, load balancer akan melakukan hal berikut:
- Melakukan injeksi kesalahan
- Memilih layanan backend untuk permintaan
- Menerapkan kebijakan Cloud Armor untuk layanan backend yang dipilih
- Menerapkan kebijakan IAP untuk layanan backend yang dipilih
- Menerapkan kebijakan penge-cache-an Cloud CDN untuk layanan backend yang dipilih dalam kasus Load Balancer Aplikasi eksternal global
Setelah load balancer memanggil ekstensi traffic di jalur permintaan untuk suatu permintaan, load balancer akan melakukan hal berikut:
- Melakukan penulisan ulang URL
- Melakukan manipulasi header sesuai dengan peta URL dan menambahkan variabel header permintaan kustom
- Melakukan pengalihan atau perutean ke layanan backend yang dipilih sambil menerapkan kebijakan waktu tunggu dan percobaan ulang di peta URL dan setelan load balancing untuk layanan backend
- Melakukan duplikasi permintaan
Setelah load balancer memanggil ekstensi traffic di jalur respons untuk suatu permintaan, load balancer akan melakukan hal berikut:
- Melakukan transformasi header respons dan menyelesaikan variabel header respons kustom
- Melakukan logging menggunakan Cloud Logging
- Melakukan caching Cloud CDN dalam kasus Load Balancer Aplikasi eksternal global
Header khusus
Di jalur traffic, ekstensi edge dan rute berjalan di titik ekstensibilitas sebelum tahap saat load balancer menambahkan header kustom. Oleh karena itu, header yang diterima oleh ekstensi edge dan rute tidak berisi header kustom yang ditambahkan oleh load balancer.
Untuk membuat informasi yang biasanya Anda masukkan dalam header kustom tersedia untuk ekstensi edge dan rute, pertimbangkan untuk menggunakan atribut yang didukung.
Batasan ekstensi
- Aturan penerusan hanya dapat memiliki satu resource
LbEdgeExtension, satu resourceLbTrafficExtension, dan satu resourceLbRouteExtension. - Untuk info tambahan, layanan backend info tambahan harus berada dalam project yang sama dengan aturan penerusan.
- Referensi lintas project antara ekstensi dan aturan penerusan tidak didukung.