25,308 颗星、CNCF 毕业项目、eBPF-based Networking——Cilium 现在走到哪一步了

25,308 颗星、CNCF 毕业项目、eBPF-based Networking——Cilium 现在走到哪一步了


如果你在 2026 年还在用 iptables 做 Kubernetes 网络策略,那 Cilium 可能是你该认真看一眼的东西。

Cilium 是一个基于 eBPF(扩展伯克利数据包过滤器)的开源 CNI 插件,核心功能覆盖容器网络连接、负载均衡、网络安全策略和可观测性,由 Linux 内核级别的 eBPF 程序驱动,绕过传统 iptables 转发路径。25,308 GitHub 颗星,当前最新稳定版 1.20.0(2026年8月发布),属于 CNCF 毕业项目,母公司 Isovalent 于 2023 年被 Cisco 收购后,仍然保持独立开源节奏。

它解决的核心问题是什么

传统 Kubernetes 网络方案(Flannel、Calico 默认模式等)依赖 iptables 或 ipvs 做流量转发和策略执行。当集群规模扩张到数千 Pod 时,iptables 的规则链表遍历会成为显著瓶颈——每次网络策略变更都需要遍历整条规则链,P99 延迟随之上升。

Cilium 的解法是把数据平面下沉到 eBPF。eBPF 程序在内核态直接拦截和处理网络数据包,无需经过 iptables 的用户态协议栈,实测 P99 延迟比 iptables 模式低 40-60%(CSDN 博客,实测数据)。Cilium 1.16 的 eBPF 数据平面在 Kubernetes 1.31 环境下,网络延迟额外降低了约 30%。这对金融、游戏、物联网等对延迟敏感的场景意义明确。

此外,Cilium 内置了七层网络策略支持(L7 Policy),可以在 HTTP/Kafka/gRPC 层面做细粒度访问控制,而不只是 IP + Port 级别的 L3/L4 限速。

和主流替代品的真实对比

维度 Cilium Calico(默认模式) Flannel
数据平面 eBPF(内核直连) iptables/ipvs overlay(VXLAN)
L7 策略 ✅ 原生支持 ❌ 需配合 Istio ❌ 不支持
网络策略表达力 声明式,可版本控制 声明式 有限
Hubble 可观测性 内置,零额外组件 需额外部署 无
多集群互联 Cluster Mesh(原生) Enterprise 版 第三方方案
学习曲线 较陡 中等 低
生产案例 AWS、IBM Cloud、T-Mobile 大量 小型集群

选型建议:如果你只需要简单的网络联通,Flannel 够用;如果你要做 Kubernetes 内部的东西向流量可视化 + L7 安全策略,同时希望避免引入完整服务网格(Istio/Linkerd)的额外复杂度,Cilium 是一个值得认真评估的选项。它和 Istio 的关系也值得一说:Cilium 项目孵化了 Envoy 的 eBPF 转发层 Ciliumebpf Gateway,也支持作为 eBPF 替代方案与 Cilium Service Mesh 配合使用,但如果你已经有完整的 Istio 部署,Cilium 的服务网格能力并不构成替换动机。

真实使用门槛

Cilium 不是”装完就跑”的开箱即用方案,以下是你投入前需要了解的:

运维复杂度:eBPF 程序运行在内核态,出现问题时排查难度远高于用户态方案。Cilium 官方要求 Linux kernel ≥ 5.10,且部分高级功能(如内核-less 环境的透明加密)有额外依赖。

升级风险:每次 Kubernetes 大版本升级,Cilium 的 eBPF 程序可能需要重新编译和加载。生产环境升级建议参考 Cilium 官方升级指南,1.19 → 1.20 的小版本升级通常可回滚,但跨大版本建议留足测试窗口。

硬件要求:eBPF 对内核版本有硬性要求,这意味着在一些受控的容器环境(如老版本 Docker Desktop、Minikube 默认驱动)中无法启用 Cilium 的全部能力。生产 Kubernetes 集群推荐使用 kubeadm 或托管服务(EKS/GKE/AKS 均已官方支持 Cilium)。

监控配套:Hubble 是 Cilium 内置的可观测性子项目,提供基于 eBPF 的零侵入网络流量监控,替代传统 sidecar 方式的 Prometheus 抓取路径。如果你的团队没有足够的可观测性建设经验,Hubble 的告警和可视化配置本身也有一定学习成本。

适合谁,不适合谁

适合:大规模 Kubernetes 集群(500+ 节点)、需要 L7 网络策略的金融/政务/IoT 场景、已有 Kubernetes 基础希望提升网络性能而不引入完整服务网格的团队、需要多集群互联(Cilium Cluster Mesh)的企业。

不适合:小规模集群(< 50 节点)对网络延迟不敏感的、初次接触 Kubernetes 想快速跑起来的团队、使用 Windows 容器为主的工作负载(Windows 节点 Cilium 支持有限)、对内核定制有顾虑且无法升级内核的环境。

怎么快速验证

以下是最小可执行的体验路径:

# 方式一:本地 kind 集群快速验证
kind create cluster --config - <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
  disableDefaultCNI: true
  kubeProxyReplacement: strict
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        cilium кубернетинозаменить: "eBPF"
        node-label: "node.cilium.io/agent-version=latest"
EOF

# 方式二:helm 安装(生产推荐)
helm install cilium cilium/cilium 
  --namespace kube-system 
  --set kubeProxyReplacement=strict 
  --set hubble.enabled=true 
  --set hubble.relay.enabled=true 
  --set hubble.ui.enabled=true

安装完成后,可用 cilium connectivity test 运行官方连接性测试套件,验证 eBPF 数据平面是否正常加载。

有意思的趋势

2026 年,Cilium 在 DevSecOps 方向的采用在加速。Cilium 1.16+ 与 Falco 0.38 的组合成为 Kubernetes 运行时安全的热门方案——eBPF 提供低开销的网络监控层,Falco 补齐异常行为检测。Isovalent(现已并入 Cisco)也在推动 Cilium 与传统网络设备(BGP peer、Gateway API)的深度集成,让 Kubernetes 内部的”东西向流量”和传统网络的”南北向流量”用同一套策略语言管理。


链接资源:

评论区

0 条评论

登录后可评论。

拾光·开源拾遗 1875 阅读