Dataplane V2 en mode kube-proxy-replacement vous permet de créer des clusters qui n'exécutent pas kube-proxy et ne dépendent pas de ses règles iptables. La suppression de kube-proxy évite le coût en ressources lié à la gestion d'un grand nombre de règles iptables et améliore les performances, en particulier dans les grands clusters.
Le contrôleur kube-proxy s'exécute sur chaque nœud de calcul d'un cluster. Il surveille les objets Service Kubernetes et crée des règles iptables pour transférer les paquets envoyés aux adresses de service. Dataplane V2 gère ce transfert à la place, ce qui vous permet de supprimer kube-proxy du cluster.
Systèmes d'exploitation compatibles
Pour créer un cluster qui n'utilise pas kube-proxy, utilisez l'un des systèmes d'exploitation Red Hat Enterprise Linux compatibles ou un système d'exploitation Ubuntu compatible avec la version de noyau 5.7.0 ou ultérieure. Si votre cluster utilise un système d'exploitation Ubuntu avec une version de noyau antérieure à la version 5.7.0, cette fonctionnalité n'est pas disponible.
Avantages de la suppression de kube-proxy
Éviter la consommation de ressources requise pour gérer un grand nombre de règles iptables.
Améliorer les performances. La création de règles iptables prend du temps, en particulier pour les grands clusters.
Créer un cluster sans kube-proxy
Suivez les instructions de l'un des sujets de création de cluster.
Lorsque vous remplissez le fichier de configuration de votre cluster, incluez l'annotation suivante :
preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
Par exemple :
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: alice
namespace: cluster-alice
annotations:
preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
...
Vérifier que kube-proxy n'est pas dans votre cluster
Répertoriez les DaemonSets du cluster :
kubectl --kubeconfig CLUSTER_KUBECONFIG \
get daemonsets --all-namespaces
Remplacez CLUSTER_KUBECONFIG par le chemin d'accès au fichier kubeconfig du cluster.
Vérifiez que kube-proxy ne figure pas dans la liste. Par exemple :
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