站内 Cilium 深度拆解 已讲清产品能力与 Identity 叙事;eBPF 内核实现 拆透 verifier/JIT/Map;Envoy / HAProxy 终章把「只要 L3/L4 与身份」指到 eBPF。中间仍缺一层:一次东西向包如何经 endpoint/identity 与 BPF map,kube-proxy 替代相对 iptables 差在哪,Hubble 字段对应哪一层,以及相对 Calico / sidecar / Ambient 何时不该上 Cilium。
本系列回答:Cilium eBPF 数据面里延迟与失败落在哪一层,何时内核路径的税不值得付。
写:
- Endpoint/Identity、BPF 挂载与关键 Map、东西向包路径。
- kube-proxy 替代、NetworkPolicy 编译、Hubble 信号、加密与 Mesh/ClusterMesh 边界。
- 观测排障、相对替代路径的选型。
不写:Helm 百科、verifier/JIT 重讲、完整 Istio/Ambient 重写、未实测延迟排行、Hubble UI 点击教程。对照单篇见 k8s-network/13;eBPF VM 见 ebpf/;用户态 L7 见 envoy/。
系列状态:01–16 已发布(2026-08-16)。 规划见 PLAN.md。无真实 Cilium 集群则不粘贴伪造
cilium status/ Hubble flow 输出。
版本锚定:Cilium v1.20.0(
docs.cilium.io/en/v1.20/;源码 tag v1.20.0)。嵌入 Envoy / Gateway API 随该发行说明;Tentacle 式第三方升版须显式标注。
适合谁看
- K8s 平台 / 网络工程师,要把「装了 Cilium」推进到「能归因」。
- 读过 Envoy / HAProxy 系列,需要 eBPF 排除树叶机制坐标的读者。
- 在 Cilium、Calico、sidecar mesh 之间做路径选型的架构师。
与已有系列的分工
| 维度 | k8s-network/13 / ebpf/ | 本系列 |
|---|---|---|
| 定位 | 产品概览 / eBPF VM 内核 | Cilium 数据面路径与失败模式 |
| 深度 | 能力表、verifier/JIT | Identity→map→hook、Service/策略状态机、排障轴 |
| 对照 | 略述 kube-proxy 替代 | 显式外链代理系列排除树;不重写 Filter/xDS |
读法:只要「Cilium 大概怎么替代 iptables」→ 13 足够;要「包卡在哪张 map、identity 漂移为何偶发拒绝」→ 本系列 01 → 02 → 05 → 06 → 07 → 13。
一、这个领域最值得关注的 5 个问题
- 一次东西向包的失败落在哪一层? → 第 1–5、7、13 篇。
- Identity 相对 IP 策略消除了什么;标签变更窗口如何表现? → 第 2、7、13 篇。
- kube-proxy 替代后 ClusterIP/NodePort 走哪条 BPF 路径? → 第 5–6 篇。
- Hubble / metrics 字段对应哪一层;何时全绿仍丢包? → 第 8、12–13 篇。
- 何时选 Cilium,而非 Calico / sidecar / Ambient? → 第 10、14–16 篇。
二、篇目依赖关系与推荐阅读路径
flowchart TD
overview["01 Overview"] --> id["02 Endpoint Identity"]
id --> attach["03 BPF Attach"]
attach --> maps["04 BPF Maps"]
maps --> path["05 East West Path"]
path --> kpr["06 Kube Proxy Replace"]
id --> policy["07 Policy Compile"]
path --> policy
policy --> hubble["08 Hubble"]
path --> enc["09 Encryption"]
kpr --> mesh["10 L7 Mesh Boundary"]
id --> cm["11 ClusterMesh"]
hubble --> obs["12 Observability"]
obs --> trouble["13 Troubleshoot"]
trouble --> vs["14 vs Alternatives"]
mesh --> gw["15 Gateway Boundary"]
vs --> select["16 Selection"]
gw --> select
overview --> select
| 路径 | 篇目 | 适合 |
|---|---|---|
| 必读核心 | 1 → 2 → 5 → 6 → 7 → 13 | 快速建立坐标系 |
| Map 与挂载 | 3 → 4 → 5 | BPF 原语在 Cilium 中的用法 |
| 可观测 | 8 → 12 → 13 | Hubble / 排障 |
| 对照选型 | 1 → 14 → 16 | 路径选型 |
| 完整通读 | 1 → … → 16 | 系统掌握 |
三、目录与每篇价值点
第一部分:模型与包路径(01–05)
- 数据面全景
- 相对 k8s-network/ebpf/代理系列的缺口;坐标系与 16 篇路线。
- Endpoint
与 Identity
- 数字身份、标签选择、生命周期。
- BPF
挂载与程序生命周期
- TC/XDP/cgroup 在 Cilium 中的角色;加载/替换。
- 关键
BPF Map
- policy、service、CT 等职责与失败表象。
- 东西向包路径
- Pod→Pod 停顿点;与 netfilter 旁路关系。
第二部分:Service、策略与扩展面(06–11)
- kube-proxy
替代
- ClusterIP/NodePort/外部流量;相对 iptables/IPVS。
- 策略编译
- NetworkPolicy / CiliumNetworkPolicy → BPF。
- Hubble
信号
- flow 字段语义;与 metrics 分工。
- 透明加密
- WireGuard / IPsec 路径税与失败模式。
- L7 与
Mesh 边界
- 可选 Envoy;相对 sidecar / Ambient。
- ClusterMesh
- 多集群身份与服务发现边界。
第三部分:观测、排障与收束(12–16)
- 可观测与运维口径
cilium status、metrics、bpftool 边界。
- 排障坐标系
- 丢包、policy deny、identity 漂移、Service 黑洞。
- 对照替代路径
- Calico、kube-proxy、Envoy sidecar、Ambient。
- Gateway
/ 南北向边界
- Cilium Gateway 与东西向焦点的分工。
- 选型收束与开放问题
- 排除树;回收代理系列 eBPF 叶。
四、延伸阅读
读完这篇,下一步读什么
优先读同系列或同问题的下一篇,把单篇消费变成主题集群。
【Cilium / eBPF】排障坐标系:丢包、policy deny、identity 漂移、Service 黑洞与加密失败
按五轴映射 Cilium 东西向故障:通用丢包、Policy denied、identity 漂移窗口、Service/ClusterIP 黑洞、透明加密失败;每轴绑定 status/Hubble/map 层,一次否证一轴。
【Cilium / eBPF】数据面全景:五轴坐标系与 16 篇路线
相对 k8s-network/13、ebpf/ 与 Envoy/HAProxy 排除树,钉清 Cilium eBPF 数据面内核缺口;定义 Identity、BPF 挂载、Map 状态、包路径、策略与观测五条坐标系,给出 16 篇阅读路线。
【Cilium / eBPF】Endpoint 与 Identity:数字身份、标签选择与生命周期
钉清 Cilium Endpoint 与 Numeric Identity 的关系:安全相关标签如何导出集群范围数字身份、保留身份与 well-known 身份、标签变更时的短暂 deny/allow 窗口,以及相对 IP 策略消除了什么。
【Cilium / eBPF】策略编译:NetworkPolicy 到 BPF 与默认拒绝窗口
拆解 Cilium v1.20 如何把 Kubernetes NetworkPolicy / CiliumNetworkPolicy 经 selector→identity 蒸馏进 endpoint policy map;钉死按方向的 default-deny 切换、Deny 优先与 identity 漂移造成的短暂拒绝/放行窗口。