Membuat cluster tanpa kube-proxy

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

kube-proxy adalah pengontrol yang berjalan di setiap worker node dalam cluster. Komponen ini memantau objek Service Kubernetes, dan membuat aturan iptables untuk meneruskan paket yang dikirim ke alamat Service. Alternatif untuk menggunakan kube-proxy dan iptables untuk tujuan ini adalah menggunakan Dataplane V2 dalam mode penggantian kube-proxy. 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 didukung.

Keuntungan menghapus kube-proxy

  • Menghindari konsumsi resource yang diperlukan untuk mempertahankan sekumpulan besar aturan iptables.

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

Membuat cluster tanpa kube-proxy

Ikuti petunjuk di 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 di cluster Anda

Mencantumkan DaemonSet di cluster:

kubectl --kubeconfig CLUSTER_KUBECONFIG \
    get daemonsets --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