kube-proxy 없이 클러스터 만들기

이 문서에서는 kube-proxy를 사용하지 않고 클러스터를 만드는 방법을 보여줍니다.

kube-proxy는 클러스터의 각 워커 노드에서 실행되는 컨트롤러입니다. Kubernetes 서비스 객체를 감시하고, 서비스 주소로 전송되는 패킷 전달을 위한 iptables 규칙을 만듭니다. 이 목적을 위한 kube-proxy 및 iptables를 사용하는 대신 kube-proxy-replacement 모드에서 Dataplane V2를 사용할 수 있습니다. 이렇게 하면 클러스터에서 kube-proxy를 삭제할 수 있습니다.

지원되는 운영체제

kube-proxy를 사용하지 않는 클러스터를 만들려면 지원되는 Red Hat Enterprise Linux 운영체제 중 하나 또는 커널 버전 5.7.0 이상을 사용하는 Ubuntu 운영체제를 사용합니다. 클러스터에서 커널 버전 5.7.0 이전의 Ubuntu 운영체제를 사용하는 경우 이 기능은 지원되지 않습니다.

kube-proxy 삭제의 이점

  • 대량의 iptables 규칙 집합을 유지하는 데 필요한 리소스 소비를 방지합니다.

  • 성능을 개선합니다. 특히 대규모 클러스터의 경우 iptables 규칙을 만들려면 시간이 오래 걸립니다.

kube-proxy 없이 클러스터 만들기

클러스터 만들기 주제 중 하나의 안내를 따르세요.

클러스터 구성 파일을 작성할 때 다음 주석을 포함합니다.

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

예를 들면 다음과 같습니다.

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

kube-proxy가 클러스터에 없는지 확인

클러스터의 DaemonSets를 나열합니다.

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

CLUSTER_KUBECONFIG를 클러스터 kubeconfig 파일의 경로로 바꿉니다.

kube-proxy가 목록에 없는지 확인합니다. 예를 들면 다음과 같습니다.

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