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. Monitora gli oggetti di servizio Kubernetes e crea regole iptables per inoltrare i pacchetti inviati agli indirizzi di servizio. Un'alternativa all'utilizzo di kube-proxy
e iptables per questo scopo è utilizzare Dataplane V2 in modalità di sostituzione del proxy Kubernetes. In questo modo, kube-proxy
può essere rimosso dal cluster.
Sistemi operativi supportati
Per creare un cluster che non utilizza kube-proxy
, utilizza uno dei sistemi operativi supportati
Red Hat Enterprise Linux
o un sistema operativo supportato
Ubuntu
con 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 la gestione di un ampio insieme di regole iptables.
Migliorare le prestazioni. La creazione di regole iptables è un processo che richiede tempo, soprattutto per i cluster di grandi dimensioni.
Creare un cluster senza kube-proxy
Segui le istruzioni riportate in uno degli argomenti sulla creazione dei cluster.
Quando 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 sia nel tuo 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