文章

Cilium 知识总览

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 的关系(避免重复)

已有笔记角度本 Cilium 系列的角度
../linux/ebpf/eBPF 与 Cilium K8s 实战eBPF 应用型 → Cilium 是”eBPF 怎么落地”的例子反过来:Cilium 是主体,eBPF 只是它的引擎
../k8s/特性详解/CNI 网络插件对比与排障三家横向对比,Cilium 占 1/3单点深挖 Cilium 内部
../k8s/特性详解/nftables kube-proxy 详解kube-proxy iptables/nftables 实现本系列 KPR 讲”eBPF 如何替代 kube-proxy”
../k8s/gateway-api/Gateway API 概述Gateway API 标准Cilium 作为 Gateway API 的 L4/L7 实现者
../k8s/特性详解/Istio 服务网格详解Sidecar 服务网格Cilium 的 sidecar-less mesh(envoy 内嵌,非 per-pod sidecar)

目录树

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)
EndpointCilium 对一个 Pod/进程网络身份的抽象,对应一组 eBPF 策略
EndpointSlices / CEPCiliumEndpoint CRD,把 Pod IP 同步给每个节点的 agent
Native Routing用底层路由(BGP/直连)让 Pod IP 可达,无 overlay 封装
Tunnel 模式VXLAN 或 Geneve 封装跨节点流量(跨子网时用)
DSR (Direct Server Return)Service 后端回包绕过节点直接返回客户端,降低节点负载
Maglev一致性哈希算法,让 Service 后端变化时连接尽量不乱
HubbleCilium 内嵌的可观测层,提供 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.10KPR 稳定、Hubble、CNP L7
1.15≥ 5.10WireGuard 成熟、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 篇