Ringkasan Load Balancer Jaringan passthrough eksternal berbasis kumpulan target

Load Balancer Jaringan passthrough eksternal adalah load balancer Lapisan 4 regional. Load Balancer Jaringan passthrough eksternal mendistribusikan traffic TCP dan UDP di antara instance virtual machine (VM) backend di region yang sama dalam jaringan Virtual Private Cloud (VPC). Load Balancer Jaringan passthrough eksternal dapat menerima traffic dari salah satu hal berikut:

  • Klien mana pun di internet
  • VM Google Cloud dengan IP eksternal
  • VM Google Cloud yang memiliki akses internet melalui Cloud NAT atau NAT berbasis instance

Bergantung pada konfigurasi aturan penerusan, setiap load balancer berbasis kumpulan target mendukung salah satu jenis traffic protokol berikut:

  • TCP
  • UDP
  • TCP dan UDP

Cakupan load balancer bersifat regional, bukan global. Artinya, semua instance backend untuk Load Balancer Jaringan passthrough eksternal harus berada di region yang sama. Anda dapat menempatkan backend di zona mana pun di region.

Load Balancer Jaringan passthrough eksternal mendukung semua port. Anda dapat menggunakan Load Balancer Jaringan passthrough eksternal untuk melakukan load balancing traffic TCP atau UDP. Karena load balancer adalah load balancer passthrough, backend Anda akan menghentikan koneksi TCP atau paket UDP yang di-load balance. Misalnya, Anda dapat menjalankan server web HTTPS di backend dan menggunakan Load Balancer Jaringan passthrough eksternal untuk merutekan permintaan ke server tersebut, yang akan menghentikan TLS di backend itu sendiri.

Jika Anda mem-build aplikasi di GKE, sebaiknya gunakan pengontrol Layanan GKE bawaan, yang men-deploy load balancer Google Cloud atas nama pengguna GKE. Ini sama dengan arsitektur load balancing mandiri, kecuali siklus prosesnya sepenuhnya otomatis dan dikontrol oleh GKE. Untuk mengetahui detailnya, lihat Mengekspos aplikasi menggunakan layanan.

Arsitektur

Load balancer terdiri dari beberapa komponen konfigurasi. Satu load balancer dapat memiliki hal berikut:

Load Balancer Jaringan passthrough eksternal selalu memiliki satu kumpulan target. Beberapa aturan penerusan dapat mereferensikan kumpulan target.

Kumpulan target adalah backend untuk load balancer. Ini menentukan instance backend tempat traffic di-load balance. Setiap aturan penerusan adalah frontend untuk load balancer. Perlu diingat bahwa ada batasan pada jumlah aturan penerusan dan kumpulan target per project.

Load Balancer Jaringan passthrough eksternal menyeimbangkan beban pada sistem Anda berdasarkan data protokol IP yang masuk, seperti alamat, port, dan jenis protokol.

Load Balancer Jaringan passthrough eksternal adalah load balancer pass-through, sehingga backend Anda menerima permintaan klien asli. Load Balancer Jaringan passthrough eksternal tidak melakukan offload atau proxy Transport Layer Security (TLS). Traffic dirutekan langsung ke VM Anda.

Saat membuat aturan penerusan untuk load balancer, Anda akan menerima alamat IP virtual (VIP) efemeral atau mencadangkan VIP yang berasal dari blok jaringan regional.

Kemudian, Anda mengaitkan aturan penerusan tersebut dengan target pool. VIP di-anycast dari titik kehadiran global Google, tetapi backend-nya bersifat regional. Load balancer tidak boleh memiliki backend yang mencakup beberapa region.

Anda dapat menggunakan firewall Google Cloud untuk mengontrol atau memfilter akses ke VM backend.

Load Balancer Jaringan passthrough eksternal memeriksa port sumber dan tujuan, alamat IP, dan protokol untuk menentukan cara meneruskan paket. Untuk traffic TCP, Anda dapat mengubah perilaku penerusan load balancer dengan mengonfigurasi afinitas sesi. Load Balancer Jaringan passthrough eksternal meneruskan paket ke antarmuka jaringan pertama (nic0) instance dalam kumpulan target.

Load balancer mempertahankan alamat IP sumber paket yang masuk. Alamat IP tujuan untuk paket masuk adalah alamat IP eksternal regional yang terkait dengan aturan penerusan load balancer.

Algoritma distribusi beban

Secara default, untuk mendistribusikan traffic ke instance, nilai afinitas sesi ditetapkan ke NONE. Cloud Load Balancing memilih instance berdasarkan hash IP dan port sumber, IP dan port tujuan, serta protokol. Artinya, koneksi TCP yang masuk tersebar di seluruh instance, dan setiap koneksi baru mungkin beralih ke instance yang berbeda. Semua paket untuk koneksi diarahkan ke instance yang sama hingga koneksi ditutup. Koneksi yang dibuat tidak diperhitungkan dalam proses load balancing.

Terlepas dari setelan afinitas sesi, semua paket untuk koneksi akan diarahkan ke instance yang dipilih hingga koneksi ditutup. Koneksi yang ada tidak memengaruhi keputusan load balancing untuk koneksi masuk baru. Hal ini dapat menyebabkan ketidakseimbangan di antara backend jika koneksi TCP jangka panjang sedang digunakan.

Anda dapat memilih setelan afinitas sesi yang berbeda jika memerlukan beberapa koneksi dari klien untuk membuka instance yang sama.

Kumpulan target

Resource kumpulan target menentukan grup instance yang harus menerima traffic masuk dari aturan penerusan. Saat aturan penerusan mengarahkan traffic ke kumpulan target, Cloud Load Balancing memilih instance dari kumpulan target ini berdasarkan hash port dan IP sumber serta port dan IP tujuan. Setiap kumpulan target beroperasi di satu region dan mendistribusikan traffic ke antarmuka jaringan pertama (nic0) dari instance backend. Untuk mengetahui informasi selengkapnya tentang cara traffic didistribusikan ke instance, lihat bagian Algoritma distribusi beban.

Load Balancer Jaringan passthrough eksternal bukan proxy. Respons dari VM backend langsung dikirim ke klien, bukan kembali melalui load balancer. Load balancer mempertahankan alamat IP sumber paket. Alamat IP tujuan untuk paket masuk adalah alamat IP eksternal regional yang terkait dengan aturan penerusan load balancer. Akibatnya:

  • Instance yang berpartisipasi sebagai VM backend untuk Load Balancer Jaringan passthrough eksternal harus menjalankan lingkungan tamu Linux, lingkungan tamu Windows, atau proses lain yang memberikan kemampuan yang setara.

    Lingkungan OS tamu (atau proses yang setara) bertanggung jawab untuk mengonfigurasi rute lokal di setiap VM backend. Rute ini memungkinkan VM menerima paket yang memiliki tujuan yang cocok dengan alamat IP aturan penerusan load balancer.

  • Pada instance backend yang menerima traffic load balanced, Anda harus mengonfigurasi software untuk mengikat ke alamat IP yang terkait dengan aturan penerusan load balancer (atau ke alamat IP apa pun, 0.0.0.0/0).

Load Balancer Jaringan passthrough eksternal mendukung autoscaler Compute Engine, yang memungkinkan pengguna melakukan penskalaan otomatis pada grup instance dalam kumpulan target berdasarkan penggunaan backend. Untuk mengetahui informasi selengkapnya, lihat Menskalakan berdasarkan penggunaan CPU.

Jika ingin target pool berisi satu instance VM, sebaiknya gunakan fitur penerusan protokol.

Kumpulan target hanya dapat digunakan dengan aturan penerusan yang menangani traffic TCP dan UDP. Untuk semua protokol lainnya, Anda harus membuat instance target. Anda harus membuat kumpulan target sebelum dapat menggunakannya dengan aturan penerusan. Setiap project dapat memiliki maksimal 50 kumpulan target.

Aturan penerusan

Aturan penerusan berfungsi bersama dengan kumpulan target untuk mendukung load balancing. Untuk menggunakan load balancing, Anda harus membuat aturan penerusan yang mengarahkan traffic ke target pool tertentu. Anda tidak dapat melakukan load balancing traffic tanpa aturan penerusan.

Setiap aturan penerusan mencocokkan alamat IP, protokol, dan secara opsional, rentang port tertentu ke satu kumpulan target. Saat traffic dikirim ke alamat IP eksternal yang ditayangkan oleh aturan penerusan, aturan penerusan akan mengarahkan traffic tersebut ke kumpulan target yang sesuai.

Jika Anda melakukan load balancing paket UDP yang cenderung terfragmentasi sebelum tiba di jaringan VPC Google Cloud, lihat Load balancing dan paket UDP yang terfragmentasi.

Load Balancer Jaringan passthrough eksternal berbasis kumpulan target mendukung protokol berikut untuk setiap aturan penerusan: TCP atau UDP. Jika ingin load balancer meneruskan semua traffic protokol IP, Anda harus menggunakan Load Balancer Jaringan passthrough eksternal berbasis layanan backend.

Beberapa aturan penerusan

Anda dapat mengonfigurasi beberapa aturan penerusan eksternal regional untuk Load Balancer Jaringan passthrough eksternal yang sama. Secara opsional, setiap aturan penerusan dapat memiliki alamat IP eksternal regional yang berbeda, atau beberapa aturan penerusan dapat memiliki alamat IP eksternal regional yang sama.

Mengonfigurasi beberapa aturan penerusan eksternal regional dapat berguna untuk kasus penggunaan berikut:

  • Anda perlu mengonfigurasi lebih dari satu alamat IP eksternal untuk kumpulan target yang sama.
  • Anda perlu mengonfigurasi rentang port yang berbeda atau protokol yang berbeda menggunakan alamat IP eksternal yang sama untuk kumpulan target yang sama.

Saat menggunakan beberapa aturan penerusan, pastikan Anda mengonfigurasi software yang berjalan di VM backend sehingga terikat dengan semua alamat IP yang diperlukan. Hal ini diperlukan karena alamat IP tujuan untuk paket yang dikirim melalui load balancer adalah alamat IP eksternal regional yang terkait dengan masing-masing aturan penerusan eksternal regional.

Health check

Health check memastikan bahwa Compute Engine meneruskan koneksi baru hanya ke instance yang aktif dan siap menerimanya. Compute Engine mengirim permintaan health check ke setiap instance dengan frekuensi yang ditentukan. Setelah instance melampaui jumlah kegagalan health check yang diizinkan, instance tersebut tidak lagi dianggap sebagai instance yang memenuhi syarat untuk menerima traffic baru.

Untuk memungkinkan penghentian dan penutupan koneksi TCP yang halus, koneksi yang ada tidak dihentikan secara aktif. Namun, koneksi yang ada ke backend yang tidak sehat tidak dijamin akan tetap berfungsi dalam jangka waktu yang lama. Jika memungkinkan, Anda harus memulai proses shutdown tuntas sesegera mungkin untuk backend yang tidak sehat.

Pemeriksa kesehatan akan terus mengkueri instance yang tidak responsif, dan menampilkan instance ke kumpulan saat jumlah pemeriksaan yang berhasil terjadi sesuai yang ditentukan. Jika semua instance ditandai sebagai UNHEALTHY, load balancer akan mengarahkan traffic baru ke semua instance yang ada.

Load Balancer Jaringan passthrough eksternal mengandalkan health check HTTP lama untuk menentukan status instance. Meskipun layanan Anda tidak menggunakan HTTP, Anda harus menjalankan server web dasar di setiap instance yang dapat dikueri oleh sistem health check.

Health check HTTPS lama tidak didukung untuk Load Balancer Jaringan passthrough eksternal dan tidak dapat digunakan dengan sebagian besar jenis load balancer lainnya.

Aturan firewall

Health check untuk Load Balancer Jaringan passthrough eksternal dikirim dari rentang IP ini. Anda harus membuat aturan firewall izin masuk yang mengizinkan traffic dari rentang tersebut.

Load Balancer Jaringan passthrough eksternal adalah load balancer passthrough, yang berarti bahwa aturan firewall Anda harus mengizinkan traffic dari alamat IP sumber klien. Jika layanan Anda terbuka untuk internet, cara termudahnya adalah mengizinkan traffic dari semua rentang IP. Jika ingin membatasi akses sehingga hanya alamat IP sumber tertentu yang diizinkan, Anda dapat menyiapkan aturan firewall untuk menerapkan pembatasan tersebut, tetapi Anda harus mengizinkan akses dari rentang IP health check.

Untuk contoh aturan firewall dan contoh konfigurasi, lihat Aturan firewall untuk Load Balancer Jaringan passthrough eksternal.

Alamat IP untuk paket permintaan dan pengembalian

Saat VM backend menerima paket load balancing dari klien, sumber dan tujuan paket tersebut adalah:

  • Sumber: alamat IP eksternal yang terkait dengan VM Google Cloud atau alamat IP yang dapat dirutekan internet dari sistem yang terhubung ke load balancer.
  • Tujuan: alamat IP aturan penerusan load balancer.

Karena load balancer adalah load balancer pass-through (bukan proxy), paket akan tiba dengan alamat IP tujuan dari aturan penerusan load balancer. Software yang berjalan di VM backend harus dikonfigurasi untuk melakukan hal berikut:

  • Memproses (mengikat ke) alamat IP aturan penerusan load balancer atau alamat IP apa pun (0.0.0.0 atau ::)
  • Jika protokol aturan penerusan load balancer mendukung port: Dengarkan (ikat ke) port yang disertakan dalam aturan penerusan load balancer

Paket return dikirim langsung dari VM backend load balancer ke klien. Alamat IP sumber dan tujuan paket yang ditampilkan bergantung pada protokol:

  • TCP berorientasi pada koneksi sehingga VM backend harus membalas dengan paket yang alamat IP sumbernya cocok dengan alamat IP aturan penerusan sehingga klien dapat mengaitkan paket respons dengan koneksi TCP yang sesuai.
  • UDP tidak memiliki koneksi sehingga VM backend dapat mengirim paket respons yang alamat IP sumbernya cocok dengan alamat IP aturan penerusan atau cocok dengan alamat IP yang ditetapkan untuk VM. Secara praktis, sebagian besar klien mengharapkan respons berasal dari alamat IP yang sama dengan alamat IP tempat mereka mengirim paket.

Tabel berikut merangkum sumber dan tujuan untuk paket respons:

Jenis traffic Sumber Tujuan
TCP Alamat IP aturan penerusan load balancer Sumber paket yang meminta
UDP Untuk sebagian besar kasus penggunaan, alamat IP aturan penerusan load balancer Sumber paket yang meminta

Jika VM memiliki alamat IP eksternal atau saat Anda menggunakan Cloud NAT, Anda juga dapat menetapkan alamat IP sumber paket respons ke alamat IPv4 internal utama NIC VM. Google Cloud atau Cloud NAT mengubah alamat IP sumber paket respons menjadi alamat IPv4 eksternal NIC atau alamat IPv4 eksternal Cloud NAT untuk mengirim paket respons ke alamat IP eksternal klien. Tidak menggunakan alamat IP aturan penerusan sebagai sumber adalah skenario lanjutan karena klien menerima paket respons dari alamat IP eksternal yang tidak cocok dengan alamat IP tempat klien mengirim paket permintaan.

Jalur pemilihan rute khusus

Google Cloud menggunakan rute khusus yang tidak ditentukan di jaringan VPC Anda untuk health check. Untuk mengetahui informasi selengkapnya, lihat Jalur untuk health check.

Arsitektur VPC Bersama

Tabel berikut merangkum komponen VPC Bersama untuk Load Balancer Jaringan passthrough eksternal:

Alamat IP Aturan penerusan Komponen backend
Alamat IP eksternal regional harus ditentukan dalam project yang sama dengan instance yang di-load balance. Aturan penerusan eksternal regional harus ditentukan dalam project yang sama dengan instance dalam kumpulan target (project layanan). kumpulan target harus ditentukan dalam project dan region yang sama dengan tempat instance dalam kumpulan target berada. Pemeriksaan kesehatan yang terkait dengan kumpulan target juga harus ditentukan dalam project yang sama.

Distribusi traffic

Cara Load Balancer Jaringan passthrough eksternal berbasis kumpulan target mendistribusikan koneksi baru bergantung pada cara afinitas sesi dikonfigurasi.

Afinitas sesi

Afinitas sesi mengontrol metode hashing yang digunakan untuk mendistribusikan koneksi baru dari klien ke VM backend load balancer. Load balancer berbasis kumpulan target menggunakan parameter sessionAffinity untuk mengonfigurasi afinitas sesi.

Untuk mengetahui informasi selengkapnya, lihat Menggunakan kumpulan target.

Load balancing dan paket UDP yang terfragmentasi

Jika Anda melakukan load balancing paket UDP, perhatikan hal berikut:

  1. Paket yang tidak terfragmentasi ditangani secara normal di semua konfigurasi.
  2. Paket UDP mungkin terfragmentasi sebelum mencapai Google Cloud. Jaringan intervensi mungkin menunggu semua fragmen tiba sebelum meneruskannya, sehingga menyebabkan penundaan, atau mungkin menghapus fragmen. Google Cloud tidak menunggu semua fragmen; Google Cloud meneruskan setiap fragmen segera setelah fragmen tersebut tiba.
  3. Karena fragmen UDP berikutnya tidak berisi port tujuan, masalah dapat terjadi dalam situasi berikut:

    • Jika afinitas sesi kumpulan target ditetapkan ke NONE (afinitas 5-tuple), fragmen berikutnya mungkin dihapus karena load balancer tidak dapat menghitung hash 5-tuple.
    • Jika ada lebih dari satu aturan penerusan UDP untuk alamat IP load-balanced yang sama, fragmen berikutnya mungkin tiba di aturan penerusan yang salah.

Jika Anda mengharapkan paket UDP yang terfragmentasi, lakukan hal berikut:

  • Tetapkan afinitas sesi ke NONE, CLIENT_IP_PROTO, atau CLIENT_IP.
    • Menetapkan afinitas sesi ke NONE menunjukkan bahwa mempertahankan afinitas tidak diperlukan. Oleh karena itu, load balancer menggunakan hash 5-tuple untuk memilih backend untuk paket yang tidak terfragmentasi, tetapi hash 3-tuple untuk paket yang terfragmentasi.
    • Menetapkan afinitas sesi ke CLIENT_IP_PROTO atau CLIENT_IP berarti bahwa port sumber dan tujuan tidak digunakan untuk hashing, sehingga hash yang sama dihitung untuk paket yang terfragmentasi dan tidak terfragmentasi.
  • Hanya gunakan satu aturan penerusan UDP per alamat IP yang di-load balance. Tindakan ini memastikan bahwa semua fragmen tiba di aturan penerusan yang sama.

Dengan setelan ini, fragmen UDP dari paket yang sama akan diteruskan ke instance yang sama untuk penyusunan ulang.

Menggunakan instance target sebagai backend

Jika Anda menggunakan instance target sebagai backend untuk Load Balancer Jaringan passthrough eksternal dan Anda mengharapkan paket UDP yang terfragmentasi, hanya gunakan satu aturan penerusan UDP per alamat IP yang di-load balance, dan konfigurasikan aturan penerusan untuk menerima traffic di semua port 0-65535. Hal ini memastikan bahwa semua fragmen tiba di aturan penerusan yang sama meskipun tidak memiliki port tujuan yang sama.

Batasan

  • Anda tidak dapat menggunakan konsol Google Cloud untuk membuat Load Balancer Jaringan passthrough eksternal berbasis kumpulan target. Sebagai gantinya, gunakan gcloud atau REST API.
  • Load Balancer Jaringan passthrough eksternal tidak mendukung Peering Jaringan VPC.

Langkah selanjutnya