本文档介绍如何创建不使用 kube-proxy
的集群。
kube-proxy
是一个在集群中的每个工作器节点上运行的控制器。它会监视 Kubernetes Service 对象,并创建 iptables 规则以转发发送到 Service 地址的数据包。为使用 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
不在集群中
列出集群中的 DaemonSet:
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