Mengonfigurasi mode jaringan load balancing

Dokumen ini menjelaskan dua mode jaringan Dataplane V2 untuk load balancing dan cara mengaktifkannya untuk GKE di Bare Metal. Sebelum GKE pada rilis Bare Metal 1.16.0, mode jaringan Dataplane V2 untuk load balancing tidak dapat dikonfigurasi. Dataplane V2 hanya mendukung load balancing alamat jaringan sumber (SNAT). Dengan cluster versi 1.16.0 dan yang lebih tinggi, Anda dapat mengonfigurasi mode jaringan load balancing ke SNAT (default) atau Direct Server Return (DSR) saat membuat cluster.

Load balancing SNAT

Penafsiran alamat jaringan (SNAT) sumber adalah mode jaringan 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 lokasi klien. Akibatnya, balasan ditampilkan ke node load balancer, lalu diterjemahkan dikembalikan dan dikirim kembali ke klien.

Alur paket untuk SNAT

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

  • Layanan jenis LoadBalancer ditetapkan ke node load balancer, dan alamat IP 172.16.20.16 diiklankan oleh speaker MetalLB yang berjalan pada 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 terbalik.

Diagram berikut menunjukkan aliran 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 IP Options 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 ditampilkan langsung dikembalikan ke alamat IP klien, bukan kembali ke node load balancer.

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

Alur paket untuk DSR

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

  • Layanan jenis LoadBalancer ditetapkan ke node load balancer, dan alamat IP 172.16.20.16 diiklankan oleh speaker MetalLB yang berjalan pada node tersebut.

  • Dataplane V2 meneruskan paket ke node pekerja dan menggunakan Opsi IP untuk menyimpan port dan alamat IP sumber klien asli.

  • Dataplane V2 di node pekerja meneruskan paket ke Pod backend.

  • Pod backend memulihkan alamat IP dan port sumber serta memberikan balasan ke klien.

Diagram berikut menunjukkan aliran paket untuk mode DSR:

Alur paket untuk load balancing Dataplane V2 dalam mode SNAT

Batasan DSR

DSR hanya didukung untuk mode non-tunnel, yang berarti model jaringan mode datar harus diaktifkan. Untuk mengetahui petunjuk tentang cara mengaktifkan model jaringan mode datar, lihat Menerapkan model jaringan mode IPv4 datar. Jika model jaringan mode datar tidak diaktifkan, pemeriksaan preflight akan gagal jika Anda mencoba mengaktifkan DSR.

Aktifkan mode DSR

Seperti disebutkan sebelumnya, mode SNAT diaktifkan secara default. Untuk mengaktifkan mode DSR, tambahkan anotasi berikut ke file konfigurasi cluster Anda sebelum membuat cluster. Saat dalam Pratinjau, fitur ini menggunakan anotasi preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable untuk mengaktifkan mode DSR. Untuk menonaktifkan mode DSR, hapus anotasi atau setel ke disable. Nilai lain tidak diterima, dan menyebabkan error validasi.

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: bm
  namespace: cluster-bm
  annotations:
    preview.baremetal.cluster.gke.io/dpv2-lbmode-dsr: enable  # valid options: enable or disable
spec:
...

Nilai tidak dapat diubah setelah cluster dibuat. Sebelum membuat cluster, pastikan Anda telah mengonfigurasi opsi yang sesuai dengan kebutuhan Anda.