Cilium 知识总览
一句话定位
Cilium 是一个基于 eBPF 的云原生网络、可观测性、安全平台,用 eBPF 在内核态直接实现 Pod 网络、Service 负载均衡、网络策略、可观测性,从而取代 kube-proxy、iptables、kube-network-policy 控制器、部分 Ingress/Service Mesh 能力。
它和传统 CNI(Flannel/Calico)的本质区别:数据面不是”用户态 agent + 内核转发规则”,而是”直接把逻辑编译成 eBPF 程序挂在内核 hook 上”。所以它能做到 O(1) Service 查找、L7 感知策略、零开销可观测——这些用 iptables/Netfilter 要么做不到要么代价巨大。
与本 Vault 的关系(避免重复)
目录树
07-Knowledge/cilium/
├── Cilium 知识总览.md ← 本篇(MOC)
├── Cilium 架构与数据面组件.md ← agent/operator/cni/hubble/envoy + eBPF 程序清单 + Endpoint 模型
├── Cilium 网络与路由模式.md ← Pod IP、Native Routing vs Tunnel、Masquerade、MTU、Host 网络
├── Cilium 网络策略与零信任.md ← CNP L3/L4/L7、FQDN、Kafka/gRPC、Policy 模式、Host Firewall
├── Cilium Service 与 KPR 深入.md ← KPR、四类型 Service、DSR、Maglev、Socket LB、ClusterMesh LB
└── Cilium Hubble 可观测性与运维排障.md ← Hubble relay/observe/metrics、cilium-cli、升级、故障表
学习路线
阶段 1:先懂"它是什么、为什么快"
→ 本总览 + [[../linux/ebpf/eBPF 性能模型]](eBPF 为什么比 iptables 快)
阶段 2:搞清内部组件与启动流程
→ [[Cilium 架构与数据面组件]](cilium-agent 加载了哪些 BPF 程序、Endpoint 怎么来)
阶段 3:网络与路由(排错地基)
→ [[Cilium 网络与路由模式]](Pod 为什么能通、跨节点为什么不通、MTU 怎么算)
阶段 4:安全(零信任落地)
→ [[Cilium 网络策略与零信任]](L7 策略、FQDN、Host Firewall)
阶段 5:Service 与负载均衡(性能核心)
→ [[Cilium Service 与 KPR 深入]](KPR、DSR、Maglev、ClusterMesh)
阶段 6:可观测与运维
→ [[Cilium Hubble 可观测性与运维排障]](Hubble、cilium-cli、升级)
核心概念速查
| 概念 | 一句话 |
|---|
| KPR (kube-proxy replacement) | 用 eBPF 替代 kube-proxy,Service 转发走 eBPF map,O(1) |
| Endpoint | Cilium 对一个 Pod/进程网络身份的抽象,对应一组 eBPF 策略 |
| EndpointSlices / CEP | CiliumEndpoint CRD,把 Pod IP 同步给每个节点的 agent |
| Native Routing | 用底层路由(BGP/直连)让 Pod IP 可达,无 overlay 封装 |
| Tunnel 模式 | VXLAN 或 Geneve 封装跨节点流量(跨子网时用) |
| DSR (Direct Server Return) | Service 后端回包绕过节点直接返回客户端,降低节点负载 |
| Maglev | 一致性哈希算法,让 Service 后端变化时连接尽量不乱 |
| Hubble | Cilium 内嵌的可观测层,提供 L3/L4/L7 流日志与服务拓扑 |
| CiliumNetworkPolicy (CNP) | Cilium 扩展的 NetworkPolicy,支持 L7/HTTP/Kafka/gRPC/FQDN |
| ClusterMesh | 跨多个 K8s 集群的 Service 发现与全局负载均衡 |
| Host Firewall | 用 Cilium 策略保护节点本身(host 命名空间)的流量 |
| BandwidthManager | 基于 eBPF 的 Pod 带宽限速(EDT + FQ) |
| Socket LB | 在 socket 系统调用层做 Service 负载均衡,连本机 backend 免走协议栈 |
版本与内核要求
| Cilium 版本 | 推荐内核 | 关键能力门槛 |
|---|
| 1.14 | ≥ 5.10 | KPR 稳定、Hubble、CNP L7 |
| 1.15 | ≥ 5.10 | WireGuard 成熟、Pod 限速 |
| 1.16+ | ≥ 5.10(推荐 5.15+) | Big TCP、Socket LB、Pod 级 NetworkPolicy 默认开启 |
| 1.17+ | ≥ 5.15 | 更强 L7、Policy 模式增强 |
通用门槛:内核 ≥ 5.10 才能用 eBPF 数据面;推荐 5.15+ 解锁全部特性。这与 ../linux/cgroup v2 详解 的 cgroup v2 要求(K8s 1.31 起强制 v2)共同推动节点内核升级。
关联知识
参考资源
学习时间
| 阶段 | 时间 | 备注 |
|---|
| 总览 | 2026-07-16 | 建立 Cilium 单点深挖体系,拆分 6 篇 |