1. 课程导论:Cilium与eBPF技术背景、网络观测节点池概念、运维剧本的价值与目标
1.1 eBPF:内核可编程的革命性技术
eBPF(extended Berkeley Packet Filter)是一项允许用户在 Linux 内核中安全、高效地运行沙箱化程序的技术。它无需修改内核源码或加载内核模块,即可动态扩展内核能力,为网络、安全、观测性等领域带来了范式转变。
| 维度 | 传统方式 | eBPF 方式 |
|---|---|---|
| 内核扩展 | 修改内核源码、编译、重启 | 动态加载、即时生效、无需重启 |
| 安全性 | 模块可能引发内核崩溃 | 验证器确保程序安全终止、无内存越界 |
| 观测粒度 | 系统调用级、粗粒度 | 函数级、协议级、数据包级、细粒度 |
| 数据采集 | 拷贝上下文、性能开销大 | 通过 BPF Map 高效共享、零拷贝 |
核心价值:eBPF 将内核从“黑盒”转变为“可编程观测平台”,使得网络数据包的捕获、过滤、转发和统计可以在内核态以接近原生性能完成。
1.2 Cilium:基于eBPF的云原生网络与安全层
Cilium 是 CNCF 毕业项目,它利用 eBPF 技术为 Kubernetes 集群提供高性能网络、服务网格、负载均衡和安全策略。Cilium 摒弃了传统的 iptables 规则链,通过 eBPF 程序直接在网络栈中实现 L3/L4/L7 策略,显著提升了大规模集群的网络吞吐量和延迟表现。
- 网络:提供 CNI 插件,支持 Overlay(VXLAN/Geneve)和 Direct Routing 模式。
- 安全:基于身份的安全策略,支持 HTTP/gRPC/Kafka 等 L7 协议过滤。
- 观测:通过 Hubble 组件提供集群内流量的实时可视化和监控。
- 服务网格:通过 Envoy 集成,提供无 Sidecar 的服务网格能力。
关键认知:Cilium 是 eBPF 技术在云原生领域最成功的落地实践之一。理解 Cilium 的架构,是掌握 eBPF 网络观测的基石。
1.3 网络观测节点池:大规模集群的可观测性基石
在大型 Kubernetes 集群中,节点数量可能成百上千。网络观测节点池(Network Observability Node Pool)是指一组被统一配置、用于执行网络数据采集和观测任务的 Kubernetes 节点。这些节点通常运行着 Cilium Agent、Hubble Relay 以及 eBPF exporter 等组件,构成集群网络观测的“数据平面”。
- 数据采集节点:运行 eBPF 程序,捕获网络数据包、连接跟踪事件、DNS 请求等。
- 数据处理节点:运行 Hubble Relay,聚合来自多个节点的流数据,提供全局视图。
- 数据存储与展示:对接 Prometheus、Grafana、Elasticsearch 等外部系统。
运维挑战:节点池规模扩大后,eBPF 程序版本一致性、Map 内存泄漏、内核兼容性、数据采集覆盖度等问题会急剧放大。缺乏系统化的巡检剧本,将导致观测数据空洞、策略失效甚至节点性能劣化。
1.4 运维剧本的价值与目标
本课程定义的《Cilium eBPF 协同 eBPF 网络观测节点池巡检运维剧本》是一套可执行、可度量的标准化操作流程。它并非零散的故障处理手册,而是覆盖“日常巡检—异常发现—根因定位—恢复验证”全生命周期的知识体系。
| 维度 | 传统运维 | 剧本驱动运维 |
|---|---|---|
| 巡检方式 | 手动执行命令、依赖经验 | 自动化剧本、标准化步骤 |
| 故障定位 | 逐节点排查、耗时较长 | 基于 eBPF 的实时追踪、快速定界 |
| 知识传承 | 个人经验、难以复制 | 剧本化文档、团队可复用 |
| 持续优化 | 被动响应、事后复盘 | 主动巡检、数据驱动改进 |
核心目标:通过本剧本,SRE 团队能够实现:
1. 5 分钟内完成单节点 eBPF 网络观测健康度检查;
2. 15 分钟内定位节点池级别的网络观测异常根因;
3. 30 分钟内执行标准恢复操作并验证效果。
1. 5 分钟内完成单节点 eBPF 网络观测健康度检查;
2. 15 分钟内定位节点池级别的网络观测异常根因;
3. 30 分钟内执行标准恢复操作并验证效果。
1.5 课程适用人群与前置知识
- SRE / 运维工程师:负责 Kubernetes 集群网络稳定性,希望掌握 eBPF 观测工具。
- 平台工程师:构建内部网络观测平台,需要标准化巡检剧本。
- 安全工程师:关注容器网络安全策略的生效验证与异常检测。
前置要求:了解 Linux 网络基础(iptables、netfilter)、Kubernetes 核心概念(Pod、Service、Node)、基本 eBPF 概念(BPF 程序、Map、Hook 点)。无需精通 C 语言,本课程以运维视角为主。