Membuat cluster tanpa kube-proxy

Dokumen ini menunjukkan cara membuat cluster yang tidak menggunakan kube-proxy.

kube-proxy adalah pengontrol yang berjalan pada setiap node pekerja dalam cluster. Ini mengamati objek Service Kubernetes, dan membuat iptable aturan untuk meneruskan paket yang dikirim ke alamat {i>Service<i}. Sebuah alternatif untuk menggunakan kube-proxy dan iptables untuk tujuan ini adalah menggunakan Dataplane V2 di mode penggantian {i>kube-proxy-proxy<i}. Hal ini memungkinkan penghapusan kube-proxy dari gugus ini.

Sistem operasi yang didukung

Untuk membuat cluster yang tidak menggunakan kube-proxy, gunakan salah satu cluster yang didukung Red Hat Enterprise Linux sistem operasi atau layanan Ubuntu sistem operasi dengan {i>kernel<i} versi 5.7.0 atau yang lebih baru. Jika cluster Anda menggunakan Sistem operasi Ubuntu dengan versi {i>kernel<i} lebih awal dari 5.7.0, fitur ini adalah tidak didukung.

Keuntungan menghapus kube-proxy

  • Hindari konsumsi resource yang diperlukan untuk mempertahankan aturan iptables.

  • Meningkatkan performa. Membuat aturan iptables memakan waktu, terutama untuk cluster besar.

Membuat cluster tanpa kube-proxy

Ikuti petunjuk di salah satu pembuatan cluster topik.

Saat Anda mengisi file konfigurasi cluster, sertakan hal berikut anotasi:

preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"

Contoh:

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: alice
  namespace: cluster-alice
  annotations:
    preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
...

Pastikan bahwa kube-proxy tidak ada dalam cluster Anda

Buat daftar DaemonSets di cluster:

kubectl --kubeconfig CLUSTER_KUBECONFIG \
    get daemonsets --all-namespaces

Ganti CLUSTER_KUBECONFIG dengan jalur cluster {i>kubeconfig<i}.

Pastikan kube-proxy tidak ada dalam daftar. Contoh:

kube-system   anetd
kube-system   audit-proxy
kube-system   etcd-defrag
kube-system   gke-metrics-agent
kube-system   kube-control-plane-metrics-proxy
kube-system   localpv
kube-system   metallb-speaker
kube-system   node-exporter
kube-system   stackdriver-log-forwarder