Mengonfigurasi mode penerusan load balancing

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)
  • Pengembalian Server Langsung (DSR)

Mode penerusan untuk load balancing dapat dikonfigurasi saat Anda membuat cluster saja.

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 diterjemahkan dan diteruskan ke node pekerja tujuan dengan Pod backend. Pod backend melihat bahwa permintaan berasal dari node load balancer, bukan lokasi klien. Akibatnya, balasan akan dikembalikan ke node load balancer dan diterjemahkan kembali serta dikirim kembali ke klien.

Alur paket untuk SNAT

Dengan mode penerusan SNAT untuk load balancing Dataplane V2, berikut alur paket dari klien eksternal ke Pod backend dan kembali:

  • 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 sumber dan port dengan SNAT ke <LB_NODE_IP>:52000 dan meneruskan paket ke node pekerja.

  • Respons akan dikirim kembali ke node load balancer dan alamat tujuan diterjemahkan kembali.

Diagram berikut menunjukkan alur paket untuk mode SNAT:

Alur paket untuk load balancing Dataplane V2 dalam mode SNAT

Load balancing DSR

Direct Server Return (DSR) mengatasi masalah pada 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 yang dikembalikan langsung kembali ke alamat IP klien, bukan kembali ke node load balancer.

Mode ini tidak hanya menyelesaikan masalah visibilitas alamat IP klien, tetapi juga menghemat bandwidth untuk node load balancer. Traffic yang ditampilkan tidak perlu melewati node load balancer, dan node load balancer tidak perlu melakukan pelacakan koneksi lagi. Pendekatan ini menghemat memori dan membebaskan port penerusan. Untuk workload asimetris, dengan traffic download yang jauh lebih tinggi daripada traffic permintaan, alur DSR mengurangi bandwidth secara signifikan.

Alur paket untuk DSR

Dengan mode penerusan DSR untuk load balancing Dataplane V2, berikut alur paket dari klien eksternal ke Pod backend dan kembali:

  • 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 pada node pekerja meneruskan paket ke Pod backend.

  • Pod backend memulihkan alamat IP sumber dan port serta membalas klien.

Diagram berikut menunjukkan alur paket untuk mode DSR:

Alur paket untuk load balancing Dataplane V2 dalam mode SNAT

Mengaktifkan mode DSR

Untuk mengaktifkan mode DSR, tambahkan kolom spec.clusterNetwork.forwardMode ke file konfigurasi cluster Anda dan setel ke dsr. Seperti 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 dapat dikonfigurasi pada waktu pembuatan cluster saja.

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 tepat sesuai kebutuhan sebelum membuat cluster.