Cilium:用 eBPF 重写 Kubernetes 网络层

📅 2026/7/5 8:43:56
Cilium:用 eBPF 重写 Kubernetes 网络层
文章目录Cilium用 eBPF 重写 Kubernetes 网络层1、 eBPF 是什么2、 它解决了什么问题3、 核心能力4、 怎么装5、 谁适合用Cilium用 eBPF 重写 Kubernetes 网络层Cilium 在 GitHub 上已经拿到 24.6K Star 了。这是一个基于 eBPF 的 Kubernetes 网络方案干的事情覆盖了网络、安全、可观测性三层。它能完全替代 kube-proxy能做 L3 到 L7 的网络策略还能跨集群组网。1、 eBPF 是什么eBPF 是 Linux 内核里的一项技术允许在内核的网络 IO、应用 socket、tracepoint 等位置动态插入字节码。不用改内核源码不用重启就能在数据路径上执行自定义逻辑。Cilium 把 eBPF 当成整个数据面的底座。网络转发、负载均衡、策略执行、可观测性采集全部跑在 eBPF 上。好处是绕过了 iptables 的线性规则匹配用哈希表做查找规模上去以后性能不会塌。2、 它解决了什么问题传统 Kubernetes 网络存在几个痛点。kube-proxy 基于 iptables 做 Service 转发Service 数量一多规则链就膨胀转发延迟跟着涨。Cilium 用 eBPF 的哈希表替掉了这套机制东西向和南北向流量都能做负载均衡支持 DSR直接服务器返回和 Maglev 一致性哈希。网络策略方面传统方案靠 IP 地址做白名单。Pod 漂一次 IP 就变了策略就废了。Cilium 给每个 Pod 分配安全身份标识策略跟着身份走不跟 IP 走。而且能做到 L7 层面的过滤比如只允许 GET 请求访问 /public 路径。3、 核心能力组网模式三种可选OverlayVXLAN/Geneve 封装、原生路由走宿主机路由表、BGP 路由通告。Overlay 对底层网络没要求能通就行原生路由性能更好但需要底层网络能路由 Pod IP。Cluster Mesh跨集群组网。多个 Kubernetes 集群之间做服务发现和策略统一适合多云或者混合云场景。一个集群挂了流量自动切到另一个集群的后端。Service Mesh不用 Sidecar 代理直接在内核层面做 mTLS 加密和 L7 策略。跟 Kubernetes Gateway API 集成用 CRD 声明路由规则。可观测性Hubble 是内置的观测平台能画实时服务拓扑图能看到每条流的 identity、label、DNS 信息。丢包原因、策略违规都有记录接 Prometheus 和 Grafana 直接出面板。4、 怎么装# 用 Helm 安装helm repoaddcilium https://helm.cilium.io/ helminstallcilium cilium/cilium--namespacekube-system装完用 CLI 检查状态cilium status cilium connectivitytest镜像支持 AMD64 和 AArch64 两个架构从 v1.13.0 开始每个版本都带 SBOM软件物料清单。5、 谁适合用运行 Kubernetes 集群、需要替代 kube-proxy 提升 Service 转发性能的团队有多云或混合云部署、需要跨集群统一网络和安全策略的场景对网络可观测性有要求、需要实时看到服务间通信拓扑的运维人员在做服务网格、但不想引入 Sidecar 代理额外开销的架构对网络可观测性有要求、需要实时看到服务间通信拓扑的运维人员在做服务网格、但不想引入 Sidecar 代理额外开销的架构