首页 > 解决方案 > 什么时候需要安装 kube-proxy?

问题描述

如果我只想使用 K8s master 来管理运行在 worker 节点中的 daemonsets(没有负载均衡,没有 HTTP 请求处理,每个 worker 节点运行相同的 pod),是否需要安装 kube-proxy?我只想使用 kubernetes 来确保每个工作节点都运行 daemonset 清单中指定的容器的一份副本。

我希望节省磁盘空间,而不是不必要地将映像安装到工作节点上。

标签: kuberneteskube-proxy

解决方案


媒体所述

最关键的(如果不是最重要的)之一是 Kubernetes 网络。kubernetes 网络有很多层——pod 网络、服务 IP、外部 IP 集群 IP 等。在此过程中,kube-proxy 扮演着重要的角色。

什么是 eBPF?完全深入的技术理解超出了本实验的范围,甚至超出了我自己的技能范围,但简单来说,eBPF(扩展伯克利包过滤器)是一个在 linux 机器的内核中运行的虚拟机。它能够运行本地即时编译的“bpf 程序”,这些程序可以访问某些内核函数。换句话说,用户可以在运行时按需注入这些程序在内核中运行。这些程序遵循 bpf 提供的特定指令集,并具有它们需要遵循的某些规则,并且它只会运行可以安全运行的程序。这与 linux 模块不同,后者也在内核中运行,但如果没有正确编写,可能会导致内核出现问题。我将把这些细节推迟到关于 BPF 的大量文章中。但是这个虚拟机可以连接到任何内核子系统,比如网络设备,并且 BPF 程序被执行以响应这些子系统上的事件。最古老和最流行的 linux 工具之一 - tcpdump 利用 BPF。我很想说智能网卡等新技术利用了 BPF,但这只是我的一个疯狂猜测。使用 eBPF 将 kube-proxy 替换为 CNI 驱动程序

cilium 项目利用 eBPF 执行其网络策略,并提供 kube-proxy 替代品。Project Calico 也有一个使用 eBPF 的技术预览,但对于这个实验,我们将只使用 Cilium。

所以 AFAIK 需要 kubernetes 工作,如果你不想使用 kube-proxy,也许你可以尝试像cilium这样的替代品,看看上面关于它的中等教程。值得一提的是,它并不比 kube-proxy 轻,它只有 147 MB​​。


推荐阅读