Tentang load balancer berbasis pemanfaatan untuk Layanan GKE

Halaman ini memperkenalkan load balancing berbasis pemanfaatan untuk Layanan Google Kubernetes Engine (GKE), yang mengevaluasi pemanfaatan resource Pod backend Anda dan menggunakan kapasitas workload sebenarnya untuk menyeimbangkan ulang traffic secara cerdas guna meningkatkan ketersediaan aplikasi dan perutean yang fleksibel.

Halaman ini ditujukan bagi arsitek Cloud dan spesialis Jaringan yang mengelola Layanan di GKE dan ingin mengoptimalkan distribusi traffic berdasarkan pemanfaatan resource real-time.

Sebelum membaca halaman ini, pastikan Anda memahami hal berikut:

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, load balancer meneruskan traffic ke semua Pod backend yang sehat dengan memperhitungkan 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 penggunaan resource real-time sebagai metrik, yang memungkinkannya menentukan volume traffic optimal yang dapat diproses setiap Pod backend untuk distribusi traffic yang cerdas.

Load balancing berbasis pemanfaatan untuk Layanan GKE mengevaluasi pemanfaatan resource sebagai metrik untuk menentukan kemampuan Pod backend dalam memproses traffic aplikasi. Kemudian, traffic akan diseimbangkan kembali 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 penggunaan resource yang lebih rendah saat backend terbebani, yang membantu mempertahankan performa aplikasi, mencegah penurunan kecepatan dan gangguan, serta membantu memastikan pengalaman yang andal bagi pengguna.

  • Menawarkan perutean yang fleksibel: menyediakan serangkaian metrik tambahan yang memungkinkan Anda menentukan kebijakan distribusi traffic yang selaras dengan kasus penggunaan bisnis Anda.

Cara kerja load balancing berbasis pemanfaatan

Load balancing berbasis pemanfaatan 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 dengan menggunakan banyak instance (Pod) di berbagai mesin. Aplikasi ini menerima traffic dalam 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 east-west): cluster Anda menerima aliran traffic di antara berbagai bagian aplikasi Anda, dari layanan lain dalam cluster GKE Anda, atau di beberapa cluster. Alur traffic internal ini dikenal sebagai traffic timur-barat.

Load balancing berbasis pemakaian untuk Layanan GKE melibatkan proses berkelanjutan, di mana agen GKE mengumpulkan metrik pemakaian Pod yang memungkinkan infrastruktur Cloud Load Balancing mendistribusikan traffic secara cerdas. Langkah-langkah berikut merangkum cara load balancing berbasis pemanfaatan untuk Layanan GKE mengelola traffic aplikasi Anda berdasarkan penggunaan resource real-time:

  1. 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 mengandalkan health check dasar dan setelan default Anda.

  2. Anda mengonfigurasi Layanan GKE untuk menggunakan pemanfaatan resource, seperti CPU, sebagai metrik utama untuk load balancing.

    Selain metrik penggunaan CPU default, Anda dapat mengekspos metrik kustom dari aplikasi agar dapat digunakan oleh load balancer. Dengan menggunakan metrik dari aplikasi, Anda dapat menentukan sinyal Anda sendiri yang khusus untuk beban kerja Anda. Misalnya, Anda dapat menggunakan gpu_cache_usage_perc metric dari beban kerja vLLM untuk membantu load balancer mengarahkan traffic ke region dengan lebih banyak resource yang tersedia. Untuk mempelajari cara mengekspos metrik kustom untuk load balancer, lihat Mengekspos metrik kustom untuk load balancer.

  3. Agen GKE khusus terus memantau penggunaan resource Pod Anda (misalnya, CPU) dan mengirimkan data ini ke infrastruktur Cloud Load Balancing secara rutin. Jika Pod memiliki beberapa container, agen menghitung gabungan pemanfaatannya.

  4. Infrastruktur Cloud Load Balancing menganalisis data penggunaan real-time untuk menyesuaikan distribusi traffic secara dinamis. Kebijakan ini menentukan jumlah traffic yang akan dikirim ke setiap grup Pod (setiap NEG zonal) dengan mengevaluasi penggunaan resource rata-ratanya (seperti beban CPU) dan faktor lain 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 pemanfaatan resource yang efisien di seluruh region terdekat Anda.

Contoh berikut menunjukkan cara kerja load balancing berbasis pemanfaatan.

Contoh: Menangani Pod yang terlalu banyak digunakan

Saat Layanan Anda menjalankan beberapa container dalam Pod yang sama, agen metrik GKE melaporkan penggunaan resource setiap container secara terpisah. Infrastruktur Cloud Load Balancing kemudian menghitung rata-rata tertimbang pemanfaatannya untuk mendapatkan total kapasitas Pod.

Load balancing berbasis pemanfaatan untuk Layanan GKE.
Gambar 1: Distribusi traffic cerdas berdasarkan pemanfaatan CPU backend dalam penyiapan load balancer yang dikelola GKE.

Gambar 1 menunjukkan cara Cloud Load Balancing menggunakan metrik pemanfaatan 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 rendah sebesar 40% dan mungkin menerima lebih banyak traffic. GKE terus mengirimkan metrik penggunaan dan metadata 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 penggunaan CPU sebesar 90%, yang melebihi nilai minimum, maka hal berikut akan terjadi:

  1. Infrastruktur Cloud Load Balancing mendeteksi penggunaan berlebih ini.
  2. Kemudian, secara cerdas, load balancer akan menyeimbangkan kembali traffic dan mengurangi jumlah traffic yang dikirim ke Pod di Zona 1. Penyeimbangan ulang ini berlanjut hingga penggunaan CPU rata-rata untuk Pod di zona tersebut kembali di bawah nilai minimum penggunaan 80%.
  3. Saat Pod di Zona 1 melaporkan penggunaan CPU yang lebih rendah (di bawah nilai minimum 80%), infrastruktur Cloud Load Balancing akan mengevaluasi ulang distribusi traffic. Kemudian, traffic akan didistribusikan kembali secara bertahap ke semua Pod yang mendukung layanan, dan terus mendistribusikan traffic secara efisien berdasarkan pemanfaatan.

Langkah berikutnya