Tentang load balancing di GKE


Halaman ini memberikan ringkasan umum tentang cara Google Kubernetes Engine (GKE) membuat dan mengelola Cloud Load Balancing. Halaman ini mengasumsikan bahwa Anda sudah mengetahui hal-hal berikut:

Halaman ini ditujukan untuk Arsitek cloud dan Spesialis jaringan yang mendesain dan membangun arsitektur jaringan untuk organisasi mereka. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Trusted Cloud , lihat Peran dan tugas pengguna umum GKE Enterprise.

Cara GKE membuat load balancer

Untuk membuat aplikasi Anda dapat diakses dari luar cluster (pengguna eksternal) atau di dalam jaringan pribadi Anda (pengguna internal), Anda dapat mengekspos aplikasi dengan menyediakan load balancer menggunakan API Gateway, Ingress, dan Service. Atau, Anda dapat membuat komponen load balancer sendiri, sementara GKE mengelola grup endpoint jaringan (NEG) yang menghubungkan load balancer Anda ke Pod di cluster Anda.

Gateway

GKE Gateway controller adalah implementasi Google untuk Kubernetes Gateway API untuk Cloud Load Balancing. Gateway API adalah project open source yang bertujuan untuk menstandardisasi cara mesh layanan dan pengontrol ingress mengekspos aplikasi di Kubernetes. API ini didesain untuk menjadi penerus resource Ingress yang lebih ekspresif, fleksibel, dan dapat di-extend.

Pengontrol Gateway GKE digunakan untuk mengonfigurasi Load Balancer Aplikasi Lapis 7 untuk mengekspos traffic HTTP(S) ke aplikasi yang berjalan di cluster.

Praktik terbaik:

Gunakan Gateway API untuk menerapkan load balancer Anda.

Masuk

Pengontrol Ingress GKE adalah implementasi Google untuk Ingress API. Ingress API memungkinkan Anda mengelola akses eksternal ke Layanan yang berjalan di cluster. Saat Anda membuat resource Ingress di GKE, pengontrol akan otomatis mengonfigurasi Load Balancer Aplikasi Lapis 7 yang memungkinkan traffic HTTP atau HTTP(S) mencapai aplikasi Anda yang berjalan di cluster.

GKE Gateway adalah pilihan yang direkomendasikan untuk deployment dan aplikasi baru yang memerlukan pengelolaan traffic tingkat lanjut, dukungan multi-protokol, atau multi-tenancy yang lebih baik. Namun, GKE Ingress adalah opsi yang layak untuk skenario perutean HTTP/HTTPS yang lebih sederhana, terutama untuk konfigurasi yang ada di mana manfaat migrasi ke Gateway API mungkin belum lebih besar daripada upaya yang diperlukan.

Layanan LoadBalancer

Service API memungkinkan Anda mengekspos aplikasi yang berjalan sebagai Pod di cluster Anda ke traffic eksternal atau internal. Saat Anda membuat Service jenis LoadBalancer, GKE secara otomatis membuat Load Balancer Jaringan Passthrough Layer 4 (TCP/UDP) berdasarkan parameter manifes Service Anda.

Di Load Balancer Jaringan Passthrough, saat traffic mencapai VM backend Anda, alamat IP sumber dan tujuan asli, protokol komunikasi (seperti TCP atau UDP), dan nomor port (jika protokol menggunakannya) tetap sama. Artinya, traffic diteruskan langsung ke VM atau Pod backend dan load balancer tidak menghentikan koneksi. Layanan backend menangani penghentian koneksi dan memastikan traffic mengalir dengan lancar dari klien ke Layanan.

Load balancing berbobot

Jika Anda mengonfigurasi Layanan LoadBalancer eksternal yang dapat diakses oleh klien di luar jaringan VPC dan VM, Trusted Cloud Anda dapat mengaktifkan load balancing berbobot. Load balancing berbobot mendistribusikan traffic berdasarkan jumlah Pod yang melayani di setiap node GKE sehingga node yang memiliki lebih banyak Pod yang melayani menerima proporsi traffic yang lebih besar dibandingkan dengan node yang memiliki lebih sedikit Pod.

NEG Mandiri

Metode lain untuk mengelola load balancer di GKE adalah dengan membuat komponen load balancer sendiri, dan membiarkan GKE mengelola NEG. Jenis load balancer ini disebut Load Balancer Jaringan Proxy. NEG adalah cara untuk merepresentasikan grup endpoint backend (misalnya, Pod) untuk load balancing.

Jenis load balancer ini hanya ditujukan untuk traffic TCP. Load Balancer Jaringan Proxy mendistribusikan traffic TCP ke backend di jaringan VPC Anda atau di lingkungan cloud lainnya. Traffic dihentikan di lapisan load balancing. Load balancer kemudian meneruskan traffic dengan membuat koneksi TCP baru ke backend terdekat yang tersedia.

Apa yang dimaksud dengan load balancing berbasis container?

Load balancing berbasis container adalah praktik mendistribusikan traffic secara merata langsung ke alamat IP setiap Pod (bukan node) menggunakan NEG GCE_VM_IP_PORT. GCE_VM_IP_PORT NEG memungkinkan Anda menentukan endpoint backend menggunakan alamat IP internal utama virtual machine (VM) Compute Engine, atau alamat IP dari salah satu rentang IP alias VM yang dikonfigurasi.

Load balancing berbasis container digunakan untuk semua load balancer Layer 7 yang dikelola GKE, termasuk Gateway dan Ingress, serta NEG mandiri. Layanan LoadBalancer tidak menggunakan load balancing berbasis container. Namun, Anda dapat mencapai kemampuan serupa dengan mengaktifkan load balancing berbobot.

Load balancing berbasis container memiliki beberapa keuntungan, termasuk peningkatan performa jaringan dan peningkatan health check, karena menargetkan Pod secara langsung. Untuk mengetahui informasi selengkapnya, lihat Load balancing berbasis container.

Tabel ringkasan

Gunakan tabel berikut untuk membantu Anda merencanakan konfigurasi load balancing.

Memilih jenis load balancer

Tabel berikut menunjukkan jenis load balancer yang dibuat untuk resource tertentu (Gateway, Ingress, atau Layanan LoadBalancer):

Resource Kubernetes Jenis load balancer yang dibuat
Load Balancer Aplikasi Load Balancer Jaringan passthrough
Gateway
Masuk
Layanan LoadBalancer

Memilih metode untuk membuat load balancer

Tabel berikut menunjukkan opsi di GKE untuk membuat load balancer pilihan Anda:

Jenis load balancer Metode untuk membuat load balancer yang dipilih
Gateway Masuk Layanan LoadBalancer NEG Mandiri
Load Balancer Aplikasi eksternal global
Load Balancer Aplikasi eksternal klasik
Load Balancer Aplikasi eksternal regional
Load Balancer Aplikasi internal regional
Load Balancer Aplikasi internal lintas region
Load Balancer Jaringan proxy
(semua jenis)
Load Balancer Jaringan passthrough
(internal dan eksternal)

Langkah berikutnya