Halaman ini memperkenalkan load balancing berbasis pemakaian untuk Service Google Kubernetes Engine (GKE), yang mengevaluasi pemakaian resource Pod backend Anda dan menggunakan kapasitas workload aktual untuk menyeimbangkan ulang traffic secara cerdas demi meningkatkan ketersediaan aplikasi dan perutean yang fleksibel.
Halaman ini ditujukan untuk Cloud Architect dan Networking Specialist yang mengelola Service di GKE dan ingin mengoptimalkan distribusi traffic berdasarkan pemakaian resource real-time.
Sebelum membaca halaman ini, pastikan Anda memahami hal-hal berikut:
- Konsep GKE: termasuk cluster, node, dan Pod GKE.
- Service Kubernetes: cara aplikasi diekspos dalam Kubernetes.
- Cloud Load Balancing: pemahaman umum tentang Cloud Load Balancing, terutama cara kerja load balancerGoogle Cloud .
- Kubernetes Gateway API: metode yang direkomendasikan untuk mengekspos Service dan mengelola traffic di GKE.
- Grup endpoint jaringan (NEG): cara Service 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 mengarahkan traffic ke Service GKE berdasarkan metrik keterjangkauan standar—termasuk HTTP, HTTPS, HTTP/2, dan gRPC—yang menentukan responsivitas dan kelayakan Pod. Secara default, layanan 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 memungkinkannya menentukan volume traffic optimal yang dapat diproses setiap Pod backend untuk distribusi traffic yang cerdas.
Load balancing berbasis pemakaian untuk Service GKE mengevaluasi pemakaian 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 pemanfaatan resource yang lebih rendah saat backend mengalami tekanan, yang membantu mempertahankan performa aplikasi, mencegah perlambatan dan pemadaman layanan, serta membantu memastikan pengalaman yang andal bagi pengguna.
Menawarkan pemilihan rute 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 pemakaian untuk Layanan GKE meningkatkan cara pengelolaan traffic untuk aplikasi Anda yang berjalan di GKE dengan membuat prosesnya lebih responsif terhadap beban resource. Aplikasi Anda berjalan di GKE dengan menggunakan banyak instance (Pod) di berbagai mesin. Gateway ini menerima traffic dengan dua cara utama:
Dari luar cluster (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 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, 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 pemakaian untuk Layanan GKE mengelola traffic aplikasi Anda berdasarkan penggunaan resource real-time:
Saat Anda menyiapkan Service 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.
Anda mengonfigurasi Service 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 untuk digunakan oleh load balancer. Dengan menggunakan metrik dari aplikasi, Anda dapat menentukan sinyal sendiri yang khusus untuk workload Anda. Misalnya, Anda dapat menggunakan
gpu_cache_usage_perc metricdari workload 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.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 akan menghitung pemakaian gabungannya.
Infrastruktur Cloud Load Balancing menganalisis data pemakaian real-time untuk menyesuaikan distribusi traffic secara dinamis. Load balancer 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 lain seperti latensi jaringan. Proses ini secara otomatis mengalihkan traffic dari Pod dengan beban lebih tinggi ke Pod dengan beban lebih rendah, sehingga memastikan pemanfaatan 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 Service 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 dari pemanfaatannya 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 moderat pada 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 pemanfaatan ke infrastruktur Cloud Load Balancing, yang secara cerdas menyesuaikan perutean traffic untuk menjaga performa dan ketersediaan aplikasi.
Pertimbangkan skenario saat layanan Anda dikonfigurasi untuk pemakaian CPU maksimum sebesar 80%. Jika Pod di Zona 1 melaporkan pemakaian CPU 90%, yang melebihi batas, hal berikut akan terjadi:
- Infrastruktur Cloud Load Balancing mendeteksi pemakaian berlebih ini.
- Kemudian, load balancer akan menyeimbangkan kembali traffic secara cerdas dan mengurangi jumlah traffic yang dikirim ke Pod di Zona 1. Penyeimbangan ulang ini berlanjut hingga pemanfaatan CPU rata-rata untuk Pod di zona tersebut turun kembali di bawah batas pemanfaatan 80%.
- Saat Pod di Zona 1 melaporkan penggunaan CPU yang lebih rendah (di bawah batas 80%), infrastruktur Cloud Load Balancing akan mengevaluasi ulang distribusi traffic. Kemudian, traffic akan diseimbangkan kembali secara bertahap di semua Pod yang mendukung layanan, dan terus mendistribusikan traffic secara efisien berdasarkan pemanfaatan.