Crea un clúster sin kube-proxy

En este documento, se muestra cómo crear un clúster que no use kube-proxy.

kube-proxy es un controlador que se ejecuta en cada nodo trabajador de un clúster. Revisa los objetos de servicio de Kubernetes y crea reglas iptables para reenviar los paquetes que se envían a las direcciones del servicio. Una alternativa al uso de iptables y kube-proxy para este propósito es usar Dataplane V2 en modo de reemplazo de kube-proxy-. Esto permite quitar kube-proxy del clúster.

Sistemas operativos compatibles

Para crear un clúster que no use kube-proxy, usa uno de los sistemas operativos Red Hat Enterprise Linux compatibles o un sistema operativo Ubuntu con la versión de kernel 5.7.0 o posterior. Si tu clúster usa un sistema operativo Ubuntu con una versión de kernel anterior a la 5.7.0, esta función no será compatible.

Ventajas de quitar kube-proxy

  • Evita el consumo de recursos necesario para mantener un gran conjunto de reglas de iptables.

  • Mejora el rendimiento. Crear reglas de iptables lleva mucho tiempo, en especial para clústeres grandes.

Crear un clúster sin kube-proxy

Sigue las instrucciones en uno de los temas de creación de clústeres.

A medida que completes el archivo de configuración del clúster, incluye la siguiente anotación:

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

Por ejemplo:

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 que kube-proxy no esté en tu clúster

Enumera los DaemonSets en el clúster:

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

Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster.

Verifica que kube-proxy no esté en la lista. Por ejemplo:

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