Halaman ini memperkenalkan load balancing berbasis pemakaian untuk Layanan Google Kubernetes Engine (GKE), yang mengevaluasi pemakaian resource Pod backend Anda dan menggunakan kapasitas beban kerja aktual untuk menyeimbangkan kembali traffic secara cerdas guna meningkatkan ketersediaan aplikasi dan perutean yang fleksibel.
Halaman ini ditujukan untuk Arsitek cloud dan Spesialis jaringan yang mengelola Layanan di GKE dan ingin mengoptimalkan distribusi traffic berdasarkan pemakaian resource real-time.
Sebelum membaca halaman ini, pastikan Anda memahami hal berikut:
- Konsep GKE: termasuk cluster, node, dan Pod GKE.
- Layanan Kubernetes: cara aplikasi diekspos dalam Kubernetes.
- Cloud Load Balancing: pemahaman umum tentang Cloud Load Balancing, terutama cara kerja Cloud de Confiance load balancer.
- Kubernetes Gateway API: metode yang direkomendasikan untuk mengekspos Layanan dan mengelola traffic di GKE.
- Grup endpoint jaringan (NEG): cara Layanan GKE menggunakan NEG untuk berintegrasi dengan Cloud Load Balancing.
- Metrik pemakaian resource dasar: misalnya, pemakaian CPU, yang merupakan metrik saat ini yang digunakan untuk load balancing berbasis pemakaian.
Ringkasan
Infrastruktur Cloud Load Balancing merutekan traffic ke Layanan GKE berdasarkan metrik aksesibilitas standar—termasuk HTTP, HTTPS, HTTP/2, dan gRPC—yang menentukan kesehatan dan kelayakan Pod. Secara default, infrastruktur ini meneruskan traffic ke semua Pod backend yang responsif dengan mempertimbangkan ketersediaan Pod dan kebijakan distribusi traffic yang ditentukan secara opsional, seperti GCPTrafficDistributionPolicy.
Aplikasi modern melacak penggunaan CPU sehingga Anda dapat memahami biaya, memantau performa, dan mengelola kapasitas secara efektif. Untuk memenuhi kebutuhan ini, load balancer menggunakan data pemakaian resource real-time sebagai metrik, yang memungkinkan load balancer menentukan volume traffic optimal yang dapat diproses setiap Pod backend untuk distribusi traffic yang cerdas.
Load balancing berbasis pemakaian untuk Layanan GKE mengevaluasi pemakaian resource sebagai metrik untuk menentukan kemampuan Pod backend dalam memproses traffic aplikasi. Kemudian, load balancing akan menyeimbangkan kembali traffic ke backend lain jika satu atau beberapa Pod digunakan secara berlebihan.
Fitur dan manfaat
Load balancing berbasis pemakaian memberikan manfaat berikut:
Meningkatkan ketersediaan aplikasi: memprioritaskan traffic ke Pod dengan pemakaian resource yang lebih rendah saat backend sedang tertekan, yang membantu mempertahankan performa aplikasi, mencegah perlambatan dan gangguan, serta membantu memastikan pengalaman yang andal bagi pengguna.
Menawarkan perutean yang fleksibel: menyediakan kumpulan metrik tambahan yang memungkinkan Anda menentukan kebijakan distribusi traffic yang selaras dengan kasus penggunaan bisnis Anda.
Cara kerja load balancing berbasis pemakaian
Load balancing berbasis pemakaian untuk Layanan GKE meningkatkan cara pengelolaan traffic untuk aplikasi yang berjalan di GKE dengan membuat proses lebih responsif terhadap beban resource. Aplikasi Anda berjalan di GKE menggunakan banyak instance (Pod) di berbagai mesin. Aplikasi ini menerima traffic dengan dua cara utama:
Dari luar cluster Anda (traffic utara-selatan): cluster Anda menerima traffic dari internet atau sumber eksternal lainnya, yang dikenal sebagai traffic utara-selatan. Load Balancer (Gateway) yang dikelola GKE mengarahkan traffic ini dari luar cluster Anda.
Dari dalam cluster Anda (traffic timur-barat): cluster Anda menerima aliran traffic antara berbagai bagian aplikasi Anda, dari layanan lain dalam cluster GKE Anda, atau di beberapa cluster. Aliran traffic internal ini dikenal sebagai traffic timur-barat.
Load balancing berbasis pemakaian untuk Layanan GKE melibatkan proses berkelanjutan, dengan agen GKE mengumpulkan metrik pemakaian Pod yang memungkinkan infrastruktur Cloud Load Balancing mendistribusikan traffic secara cerdas. Langkah-langkah berikut merangkum cara load balancing berbasis pemakaian untuk Layanan GKE mengelola traffic aplikasi Anda berdasarkan penggunaan resource real-time:
Saat Anda menyiapkan Layanan GKE dengan Load Balancer Aplikasi (Gateway), GKE akan otomatis membuat NEG untuk setiap zona dan menetapkan Pod aplikasi Anda ke NEG ini. Awalnya, distribusi traffic bergantung pada health check dasar dan setelan default Anda.
Anda mengonfigurasi Layanan GKE untuk menggunakan pemakaian resource, seperti CPU, sebagai metrik utama untuk load balancing.
Selain metrik pemakaian CPU default, Anda dapat mengekspos metrik kustom dari aplikasi Anda untuk digunakan load balancer. Dengan menggunakan metrik dari aplikasi Anda, Anda dapat menentukan sinyal Anda sendiri yang khusus untuk beban kerja Anda. Misalnya, Anda dapat menggunakan
gpu_cache_usage_perc metricdari beban kerja vLLM untuk membantu load balancer mengarahkan traffic ke region dengan resource yang lebih tersedia. Untuk mempelajari cara mengekspos metrik kustom untuk load balancer Anda, lihat Mengekspos metrik kustom untuk load balancer.Agen GKE khusus terus memantau penggunaan resource Pod Anda (misalnya, CPU) dan mengirimkan data ini ke infrastruktur Cloud Load Balancing secara berkala. Jika Pod memiliki beberapa container, agen akan menghitung pemakaian gabungannya.
Infrastruktur Cloud Load Balancing menganalisis data pemakaian real-time untuk menyesuaikan distribusi traffic secara dinamis. Infrastruktur ini menentukan jumlah traffic yang akan dikirim ke setiap grup Pod (setiap NEG zona) dengan mengevaluasi pemakaian resource rata-rata (seperti beban CPU) dan faktor lainnya seperti latensi jaringan. Proses ini secara otomatis mengalihkan traffic dari Pod dengan beban yang lebih tinggi ke Pod dengan beban yang lebih rendah, sehingga memastikan pemakaian resource yang efisien di seluruh region terdekat Anda.
Contoh berikut menunjukkan cara kerja load balancing berbasis pemakaian.
Contoh: Menangani Pod yang digunakan secara berlebihan
Saat Layanan Anda menjalankan beberapa container dalam Pod yang sama, agen metrik GKE akan melaporkan penggunaan resource setiap container secara terpisah. Infrastruktur Cloud Load Balancing kemudian menghitung rata-rata tertimbang pemakaiannya untuk mendapatkan total kapasitas Pod.
Gambar 1 menunjukkan cara Cloud Load Balancing menggunakan metrik pemakaian CPU real-time dari GKE untuk mengoptimalkan distribusi traffic di seluruh Pod yang di-deploy di beberapa zona. Permintaan klien dirutekan melalui Gateway GKE ke Pod backend yang dikelompokkan dalam NEG di tiga zona.
Di Zona 1, Pod melaporkan penggunaan CPU sebesar 90%. Load balancer mengurangi traffic ke Pod ini untuk mencegah kelebihan beban.
Di Zona 2, Pod digunakan secara sedang dengan CPU 60% dan terus menerima traffic.
Di Zona 3, Pod melaporkan penggunaan CPU yang rendah sebesar 40% dan mungkin menerima lebih banyak traffic. GKE terus mengirimkan metadata dan metrik pemakaian ke infrastruktur Cloud Load Balancing, yang secara cerdas menyesuaikan perutean traffic untuk mempertahankan performa dan ketersediaan aplikasi.
Pertimbangkan skenario saat layanan Anda dikonfigurasi untuk pemakaian CPU maksimum sebesar 80%. Jika Pod di Zona 1 melaporkan pemakaian CPU sebesar 90%, yang melebihi nilai minimum, hal berikut akan terjadi:
- Infrastruktur Cloud Load Balancing mendeteksi penggunaan berlebihan ini.
- Kemudian, infrastruktur ini akan menyeimbangkan kembali traffic secara cerdas dan mengurangi jumlah traffic yang dikirim ke Pod di Zona 1. Penyeimbangan kembali ini akan terus berlanjut hingga pemakaian CPU rata-rata untuk Pod di zona tersebut kembali di bawah nilai minimum pemakaian 80%.
- Saat Pod di Zona 1 melaporkan pemakaian CPU yang lebih rendah (di bawah nilai minimum 80%), infrastruktur Cloud Load Balancing akan mengevaluasi kembali distribusi traffic. Kemudian, infrastruktur ini secara bertahap menyeimbangkan kembali traffic di semua Pod yang mendukung layanan, dan terus mendistribusikan traffic secara efisien berdasarkan pemakaian.