Crear un clúster sin kube-proxy

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

kube-proxy es un controlador que se ejecuta en cada nodo de trabajo de un clúster. Monitoriza los objetos de servicio de Kubernetes y crea reglas de iptables para reenviar los paquetes que se envían a las direcciones de servicio. Una alternativa a usar kube-proxy e iptables para este fin es usar Dataplane V2 en el modo de sustitución de kube-proxy. De esta forma, se puede eliminar kube-proxy del clúster.

Sistemas operativos compatibles

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

Ventajas de eliminar kube-proxy

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

  • Mejorar el rendimiento. Crear reglas de iptables lleva mucho tiempo, sobre todo en clústeres grandes.

Crear un clúster sin kube-proxy

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

Cuando rellenes 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.

Lista los DaemonSets del clúster:

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

Sustituye CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig del clúster.

Comprueba 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