一、传统K8s网络的四个核心瓶颈
二、eBPF到底改写了什么?
三、Cilium的核心优势:网络、安全、观测三合一
在网络层面,它重构了数据转发效率。Cilium 可以完整替代kube-proxy,在内核中直接完成Service 负载均衡,大幅减少iptables 规则依赖。除此之外,Pod跨节点通信、Overlay / 原生路由、BGP集成、Egress网关、多集群Cluster Mesh,从单集群基础网络到多集群服务互通,它都能完整覆盖。很多人听过“Cilium 性能提升30%-50%” 的说法,其实更准确的表述是:在大规模Service、高频Endpoint 变更、东西向流量密集的场景下,它的收益非常明显;而小规模集群的核心价值,更多体现在规则复杂度降低、排障效率提升和后续扩展能力上。 在安全层面,它把策略从 IP 升级到了身份。这是Cilium 最贴合K8s 本质的设计。Pod的IP 随时会变,但它的命名空间、标签、ServiceAccount这些身份属性是稳定的。Cilium的策略围绕身份构建,而不是围绕易变的IP。除了兼容标准K8s NetworkPolicy,它还支持更强大的CiliumNetworkPolicy,能管控DNS 域名、HTTP方法与路径、Kafka Topic 等L7 维度。比如限制报表服务只能调用用户服务的GET /profile 接口,而不能碰管理接口—— 这在传统L4 策略里根本做不到。对零信任架构来说,这种 “工作负载级最小权限” 的控制,比单纯放开端口有价值得多。 在可观测层面,它让网络排障从猜测变成可解释。配套的Hubble 组件,直接从Cilium 数据面提取流量事件,能展示服务依赖拓扑、流量方向、源目身份、协议信息、策略判定结果、HTTP状态码、DNS查询结果。以前排查 “服务 A 访问服务 B 为什么失败”,要翻好几个工具;现在用 Hubble 一眼就能看到:是被策略拒绝了,还是 DNS 解析失败,还是后端无响应,甚至能看到具体是哪条策略命中了拒绝。除此之外,它还能基于真实流量生成服务地图,帮团队发现文档里没写的隐式依赖、无效调用,为架构治理和策略收敛提供依据。
四、和Calico、Flannel比,该怎么选?
Flannel 的优势是极致简单,学习成本极低,只解决 Pod 跨节点通信。适合测试环境、小型集群,对安全和观测没太高要求的场景。但要做精细化治理,就必须叠加其他组件。 Calico 成熟稳定,生态完善,尤其在 BGP 路由、L3/L4 网络策略上有大量生产实践。如果你的需求集中在基础路由和端口级策略,现有集群运行稳定,那 Calico 依然是非常可靠的选择。 Cilium 的优势是 eBPF 数据面、身份化策略、L7 管控、Hubble 观测、kube-proxy 替代,走的是网络安全观测一体化的路线。它更适合规模化生产集群,适合正在推进零信任、被排障和 iptables 问题困扰、未来有多集群规划的团队。
五、落地Cilium,最稳妥的路径是什么?
验证基础连通性先在测试集群或新建非核心集群部署,验证Pod 通信、Service访问、DNS、Ingress、存储监控等基础能力,重点确认兼容性,不要急于上高级功能。 先上 Hubble 可观测性让团队先熟悉Hubble 的UI 和CLI,用真实流量跑通排障流程。这一步投入产出比最高,哪怕暂时不改网络策略,也能立刻解决排障难的问题。 迁移基础网络策略先从命名空间隔离、环境隔离、核心服务防护这类L3/L4 规则开始,配合Hubble 观察流量,确认无误伤再逐步收敛,不要一上来就写复杂L7 策略。 评估 kube-proxy 替代选择流量模型清晰的集群做压测和灰度,重点验证延迟、吞吐、CPU开销、NodePort/LoadBalancer兼容性,确认稳定后再推广到核心集群。 按需启用高级能力L7 策略、DNS策略、Egress网关、透明加密、多集群这些能力,要围绕具体业务需求启用。比如高风险服务做L7 接口管控,多地域集群做Cluster Mesh,没有明确需求不要过早引入。
夜雨聆风