Crie um cluster sem kube-proxy

Este documento mostra como criar um cluster que não usa kube-proxy.

kube-proxy é um controlador que é executado em cada nó de trabalho num cluster. Monitoriza os objetos de serviço do Kubernetes e cria regras de iptables para encaminhar pacotes enviados para endereços de serviço. Uma alternativa à utilização de kube-proxy e iptables para este fim é usar o Dataplane V2 no modo de substituição do kube-proxy. Isto permite a remoção de kube-proxy do cluster.

Sistemas operativos compatíveis

Para criar um cluster que não use o kube-proxy, use um dos sistemas operativos Red Hat Enterprise Linux compatíveis ou um sistema operativo Ubuntu compatível com a versão 5.7.0 ou posterior do kernel. Se o seu cluster usar um sistema operativo Ubuntu com uma versão do kernel anterior a 5.7.0, esta funcionalidade não é suportada.

Vantagens da remoção de kube-proxy

  • Evitar o consumo de recursos necessário para manter um grande conjunto de regras de iptables.

  • Melhorar o desempenho. A criação de regras de iptables é demorada, especialmente para clusters grandes.

Crie um cluster sem kube-proxy

Siga as instruções num dos tópicos de criação de clusters.

À medida que preenche o ficheiro de configuração do cluster, inclua a seguinte anotação:

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

Por exemplo:

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: alice
  namespace: cluster-alice
  annotations:
    preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
...

Verifique se kube-proxy não está no seu cluster

Liste os DaemonSets no cluster:

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

Substitua CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster.

Verifique se kube-proxy não está na lista. Por exemplo:

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