Criar um cluster sem kube-proxy

Neste documento, mostramos como criar um cluster que não usa kube-proxy.

kube-proxy é um controlador executado em cada nó de trabalho em um cluster. Ele observa objetos de serviço do Kubernetes e cria regras iptables para encaminhar pacotes que são enviados para endereços do serviço. Uma alternativa ao uso de kube-proxy e iptables para essa finalidade é usar o Dataplane V2 no modo kube-proxy-replacement. Isso permite a remoção de kube-proxy do cluster.

Sistemas operacionais compatíveis

Para criar um cluster que não usa kube-proxy, use um dos sistemas operacionais Red Hat Enterprise Linux compatíveis ou um sistema operacional Ubuntu compatível com a versão do kernel 5.7.0 ou posterior. Se o cluster usar um sistema operacional Ubuntu com uma versão do kernel anterior à 5.7.0, esse recurso não será compatível.

Vantagens de remover kube-proxy

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

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

Criar um cluster sem kube-proxy

Siga as instruções em um dos tópicos de criação de cluster.

Ao preencher o arquivo de configuração do cluster, inclua a anotação a seguir:

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 arquivo 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