Mit Dataplane V2 im Modus kube-proxy-replacement können Sie Cluster erstellen, die kube-proxy nicht ausführen oder nicht auf dessen iptables-Regeln angewiesen sind. Durch das Entfernen von kube-proxy werden die Ressourcenkosten für die Verwaltung einer großen Anzahl von iptables-Regeln vermieden und die Leistung verbessert, insbesondere in großen Clustern.
Der kube-proxy-Controller wird auf jedem Worker-Knoten in einem Cluster ausgeführt. Er beobachtet Kubernetes-Serviceobjekte und erstellt iptables-Regeln zum Weiterleiten von Paketen, die an Dienstadressen gesendet werden. Dataplane V2 übernimmt stattdessen diese Weiterleitung, sodass Sie kube-proxy aus dem Cluster entfernen können.
Unterstützte Betriebssysteme
Wenn Sie einen Cluster ohne kube-proxy erstellen möchten, verwenden Sie eine der unterstützten
Red Hat Enterprise Linux
oder einem unterstützten
Ubuntu-
Betriebssystem mit Kernel-Version 5.7.0 oder höher. Wenn Ihr Cluster ein
Ubuntu-Betriebssystem mit einer Kernel-Version vor 5.7.0 ist, wird diese Funktion nicht unterstützt.
Vorteile des Entfernens von kube-proxy
Vermeiden Sie den Ressourcenverbrauch, der zum Verwalten einer großen Reihe von iptables-Regeln erforderlich ist.
Optimieren Sie die Leistung. Das Erstellen von iptables-Regeln ist zeitaufwendig, insbesondere bei großen Clustern.
Cluster ohne kube-proxy erstellen
Folgen Sie der Anleitung in einem der Dokumente zur Clustererstellung.
Fügen Sie beim Ausfüllen Ihrer Clusterkonfigurationsdatei die folgende Annotation ein:
preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
Beispiele:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: alice
namespace: cluster-alice
annotations:
preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
...
Prüfen, ob sich kube-proxy nicht im Cluster befindet
Listen Sie die DaemonSets im Cluster auf:
kubectl --kubeconfig CLUSTER_KUBECONFIG \
get daemonsets --all-namespaces
Ersetzen Sie CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Clusters.
Achten Sie darauf, dass kube-proxy nicht in der Liste enthalten ist. Beispiele:
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