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. Supervisa los objetos de servicio de Kubernetes y crea reglas de iptables para reenviar paquetes que se envían a direcciones de servicio. Una alternativa para usar kube-proxy y iptables con este fin es usar Dataplane V2 en el modo kube-proxy-replacement. 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 compatibles con Red Hat Enterprise Linux o un sistema operativo compatible con Ubuntu con la versión 5.7.0 del kernel o una 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 es compatible.

Ventajas de quitar kube-proxy

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

  • Mejora el rendimiento. La creación de reglas de iptables requiere tiempo, en especial para clústeres grandes.

Crea un clúster sin kube-proxy

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

Cuando 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

Obtén una lista de los DaemonSets del 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