Dokumen ini menjelaskan dua mode penerusan Dataplane V2 untuk load balancing dan cara mengaktifkannya untuk Google Distributed Cloud. Dataplane V2 mendukung dua mode penerusan untuk load balancing:
- Penafsiran alamat jaringan sumber (SNAT)
- Direct Server Return (DSR)
Mode penerusan untuk load balancing hanya dapat dikonfigurasi saat Anda membuat cluster.
Load balancing SNAT
Penafsiran alamat jaringan sumber (SNAT) adalah mode penerusan default untuk load balancing Dataplane V2. Namun, dalam mode SNAT, alamat IP klien tidak dipertahankan untuk Pod backend. Saat paket dari klien tiba di node load balancer, paket tersebut akan diterjemahkan dan diteruskan ke node pekerja tujuan dengan Pod backend. Pod backend melihat bahwa permintaan berasal dari node load balancer, bukan dari lokasi klien. Akibatnya, balasan akan ditampilkan ke node load balancer, diterjemahkan secara terbalik, dan dikirim kembali ke klien.
Alur paket untuk SNAT
Dengan mode penerusan SNAT untuk load balancing Dataplane V2, berikut adalah aliran paket dari klien eksternal ke Pod backend dan sebaliknya:
Layanan jenis LoadBalancer ditetapkan ke node load balancer dan alamat IP-nya
172.16.20.16
diiklankan oleh speaker MetalLB yang berjalan di node tersebut.Dataplane V2 menerjemahkan alamat IP dan port sumber dengan SNAT ke
<LB_NODE_IP>:52000
dan meneruskan paket ke node pekerja.Respons dikirim kembali ke node load balancer dan alamat tujuan diterjemahkan secara terbalik.
Diagram berikut menunjukkan alur paket untuk mode SNAT:
Load balancing DSR
Direct Server Return (DSR) mengatasi masalah terkait load balancing SNAT. Dalam mode DSR, node load balancer menggunakan Opsi IP untuk menyimpan alamat sumber klien. Node pekerja dapat memulihkan paket asli dan meneruskannya ke Pod backend. Pod backend dapat melihat bahwa paket berasal dari alamat IP klien, bukan alamat IP node load balancer. Akibatnya, paket return akan langsung kembali ke alamat IP klien, bukan kembali ke node load balancer.
Mode ini tidak hanya mengatasi masalah visibilitas alamat IP klien, tetapi juga menghemat bandwidth untuk node load balancer. Traffic yang ditampilkan tidak harus melalui node load balancer, dan node load balancer tidak perlu lagi melakukan pelacakan koneksi. Pendekatan ini menghemat memori dan mengosongkan port penerusan. Untuk workload asimetris, dengan traffic download jauh lebih tinggi daripada traffic permintaan, alur DSR akan mengurangi bandwidth secara signifikan.
Alur paket untuk DSR
Dengan mode penerusan DSR untuk load balancing Dataplane V2, berikut adalah alur paket dari dan klien eksternal ke Pod backend dan sebaliknya:
Layanan jenis LoadBalancer ditetapkan ke node load balancer dan alamat IP-nya
172.16.20.16
diiklankan oleh speaker MetalLB yang berjalan di node tersebut.Dataplane V2 meneruskan paket ke node pekerja dan menggunakan Opsi IP untuk menyimpan alamat IP dan port sumber klien asli.
Dataplane V2 di node pekerja meneruskan paket ke Pod backend.
Pod backend memulihkan alamat IP dan port sumber serta membalas klien.
Diagram berikut menunjukkan alur paket untuk mode DSR:
Mengaktifkan mode DSR
Untuk mengaktifkan mode DSR, tambahkan kolom spec.clusterNetwork.forwardMode
ke file konfigurasi cluster Anda dan tetapkan ke dsr
. Seperti yang telah disebutkan sebelumnya,
mode SNAT diaktifkan secara default. Anda dapat menentukan mode SNAT secara eksplisit dengan menetapkan
forwardMode
ke snat
. Mode penerusan untuk load balancing Dataplane V2 hanya dapat
dikonfigurasi pada waktu pembuatan cluster.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: lb-mode
namespace: cluster-lb-mode
...
spec:
clusterNetwork:
forwardMode: dsr # valid options are dsr or snat
pods:
cidrBlocks:
- 192.168.0.0/16
services:
cidrBlocks:
- 10.96.0.0/20
...
Nilai forwardMode
tidak dapat diubah setelah cluster dibuat. Pastikan Anda telah mengonfigurasi opsi yang benar untuk kebutuhan Anda sebelum membuat cluster.