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 mengetahui hal berikut:

  • Jenis load balancer Google Cloud
  • Perbedaan antara load balancer Lapisan 4 (Load Balancer Jaringan) dan Lapisan 7 (Load Balancer Aplikasi)

Halaman ini ditujukan untuk arsitek Cloud dan spesialis Jaringan yang mendesain dan membuat arsitektur jaringan untuk organisasi mereka. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE Enterprise umum.

Cara GKE membuat load balancer

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

Gateway

Gateway GKE controller adalah implementasi Google untuk Kubernetes Gateway API untuk Cloud Load Balancing. Gateway API adalah project open source yang bertujuan untuk menstandarkan cara service mesh dan pengontrol ingress mengekspos aplikasi di Kubernetes. Gateway API dirancang untuk menjadi penerus resource Ingress yang lebih ekspresif, fleksibel, dan dapat diperluas.

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

Praktik terbaik:

Gunakan Gateway API untuk menerapkan load balancer Anda.

Ingress

Pengontrol GKE Ingress 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 Lapisan 7 yang memungkinkan traffic HTTP atau HTTP(S) menjangkau aplikasi yang berjalan di cluster.

Gateway GKE adalah pilihan yang direkomendasikan untuk deployment dan aplikasi baru yang memerlukan pengelolaan traffic lanjutan, 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 yang manfaat migrasi ke Gateway API mungkin belum sebanding dengan upaya yang diperlukan.

Service LoadBalancer

Service API memungkinkan Anda mengekspos aplikasi yang berjalan sebagai Pod di cluster Anda ke traffic eksternal atau internal. Saat Anda membuat Service dari jenis LoadBalancer, GKE akan otomatis membuat Load Balancer Jaringan Passthrough Lapisan 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) akan 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 Service LoadBalancer eksternal yang dapat diakses oleh klien di luar jaringan VPC dan Google Cloud VM, 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 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. NEG GCE_VM_IP_PORT memungkinkan Anda menentukan endpoint backend menggunakan alamat IP internal utama virtual machine (VM) Compute Engine, atau alamat IP dari salah satu rentang IP alias yang dikonfigurasi VM.

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

Load balancing berbasis container memiliki beberapa keunggulan, 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 Service LoadBalancer):

Resource Kubernetes Jenis load balancer yang dibuat
Load Balancer Aplikasi Load Balancer Jaringan Passthrough
Gateway
Ingress
Service LoadBalancer

Memilih metode untuk membuat load balancer

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

Jenis load balancer Metode untuk membuat load balancer yang dipilih
Gateway Ingress Service 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