Creare un cluster senza kube-proxy

Questo documento mostra come creare un cluster che non utilizza kube-proxy.

kube-proxy è un controller che viene eseguito su ogni nodo worker di un cluster. Osserva gli oggetti servizio Kubernetes e crea regole iptables per inoltrare i pacchetti inviati agli indirizzi del servizio. Un'alternativa all'utilizzo di kube-proxy e iptables a questo scopo è utilizzare Dataplane V2 in modalità di sostituzione di kube-proxy. Ciò consente la rimozione di kube-proxy dal cluster.

Sistemi operativi supportati

Per creare un cluster che non utilizza kube-proxy, utilizza uno dei sistemi operativi Red Hat Enterprise Linux supportati o un sistema operativo Ubuntu supportato con la versione del kernel 5.7.0 o successive. Se il tuo cluster utilizza un sistema operativo Ubuntu con una versione del kernel precedente alla 5.7.0, questa funzionalità non è supportata.

Vantaggi della rimozione di kube-proxy

  • Evita il consumo di risorse necessario per gestire un ampio insieme di regole iptables.

  • Migliorare il rendimento. La creazione di regole iptables richiede tempo, soprattutto per i cluster di grandi dimensioni.

Crea un cluster senza kube-proxy

Segui le istruzioni in uno degli argomenti relativi alla creazione di cluster.

Mentre compili il file di configurazione del cluster, includi la seguente annotazione:

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

Ad esempio:

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

Verifica che kube-proxy non si trovi nel cluster

Elenca i DaemonSet nel cluster:

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

Sostituisci CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster.

Verifica che kube-proxy non sia presente nell'elenco. Ad esempio:

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