Membuat cluster tanpa kube-proxy

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

kube-proxy adalah pengontrol yang berjalan di setiap node pekerja dalam cluster. Library ini mengamati objek Layanan Kubernetes, dan membuat aturan iptables untuk meneruskan paket yang dikirim ke alamat Service. Alternatif selain menggunakan kube-proxy dan iptables untuk tujuan ini adalah dengan menggunakan Dataplane V2 dalam mode kube-proxy-replacement. Hal ini memungkinkan penghapusan kube-proxy dari cluster.

Sistem operasi yang didukung

Untuk membuat cluster yang tidak menggunakan kube-proxy, gunakan salah satu sistem operasi Red Hat Enterprise Linux yang didukung atau sistem operasi Ubuntu yang didukung dengan kernel versi 5.7.0 atau yang lebih baru. Jika cluster Anda menggunakan sistem operasi Ubuntu dengan versi kernel yang lebih lama dari 5.7.0, fitur ini tidak akan didukung.

Manfaat menghapus kube-proxy

  • Hindari pemakaian resource yang diperlukan untuk mempertahankan sekumpulan besar aturan iptables.

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

Buat cluster tanpa kube-proxy

Ikuti petunjuk pada salah satu topik pembuatan cluster.

Saat Anda mengisi file konfigurasi cluster, sertakan anotasi berikut:

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 kube-proxy tidak ada dalam cluster Anda

Buat daftar DaemonSets dalam cluster:

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

Ganti CLUSTER_KUBECONFIG dengan jalur file kubeconfig cluster.

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