1. 课程导论与沙盘架构
1.1 课程背景与设计目标
在云原生基础设施中,etcd 作为 Kubernetes 的控制面数据存储,其稳定性直接决定集群的可用性;Cilium 作为基于 eBPF 的网络与安全组件,其故障诊断能力是运维人员必须掌握的核心技能。当管理多个 Kubernetes 集群时,etcd 的性能瓶颈与 Cilium 的网络故障往往相互交织,传统单集群诊断方法难以应对。
本课程围绕 “多集群管理 etcd 压测沙盘” 展开,旨在通过一个可复现的沙盘环境,系统性地训练运维人员对 etcd 性能压测与 Cilium 网络故障的诊断能力。沙盘的设计目标如下:
| 设计维度 | 目标描述 |
|---|---|
| 可复现性 | 沙盘环境基于代码化定义(如 Terraform + Ansible),可在任意基础设施中快速重建,确保故障场景可重复触发。 |
| 多集群隔离 | 沙盘包含至少 3 个独立的 Kubernetes 集群(管理集群、业务集群 A、业务集群 B),模拟真实多集群管理拓扑。 |
| etcd 压测能力 | 内置 etcd 性能压测工具链(如 etcd-benchmark、自定义压测脚本),支持对 key-value 写入、读取、事务操作进行压力注入。 |
| Cilium 故障注入 | 支持通过 Cilium 的 NetworkPolicy、Service 路由、eBPF 程序注入等机制,模拟网络连通性故障、DNS 解析异常、策略阻断等场景。 |
| 诊断可观测性 | 沙盘预置 Prometheus + Grafana 监控栈、etcd 指标面板、Cilium Hubble 流量可视化,为故障诊断提供数据支撑。 |
适用场景:本课程适合具备 1-3 年 Kubernetes 运维经验的 SRE、平台工程师、网络运维人员。沙盘环境可在个人笔记本(16GB 内存以上)或云虚拟机中部署,无需额外硬件。
1.2 沙盘总体架构
沙盘采用 “管理集群 + 业务集群” 的分层架构,所有集群均部署 Cilium 作为 CNI 插件。管理集群负责统一监控、日志采集、压测任务下发;业务集群承载 etcd 实例与工作负载,模拟真实业务流量。
1.3 核心组件与交互关系
沙盘中的核心组件按功能分为 控制面、数据面、观测面 三层,其交互关系如下表所示:
| 层级 | 组件 | 职责 | 与 etcd 压测的关系 | 与 Cilium 故障诊断的关系 |
|---|---|---|---|---|
| 控制面 | 管理集群 | 统一调度压测任务、下发故障注入指令、聚合监控数据 | 通过 Job 向业务集群 etcd 发起压测 | 触发 Cilium NetworkPolicy 变更、Service 路由调整 |
| 数据面 | 业务集群 etcd | 存储 Kubernetes 对象状态,响应 API Server 读写请求 | 承受高并发写入/读取压力,产生延迟、错误等指标 | etcd 性能劣化可能导致 Cilium 控制面组件(如 kvstore)超时 |
| 数据面 | Cilium Agent | 管理 eBPF 程序、实现网络策略与负载均衡 | etcd 压测可能影响 Cilium 与 API Server 的心跳 | 故障注入目标:策略误拦截、DNS 解析失败、隧道封装异常 |
| 观测面 | Prometheus + Grafana | 采集 etcd 和 Cilium 指标,提供可视化面板 | 展示 etcd 的 QPS、延迟、DB 大小、leader 变更 | 展示 Cilium 的 endpoint 状态、策略命中率、丢包率 |
| 观测面 | Hubble | 提供 Cilium 网络流量可视化与策略审计 | 辅助判断 etcd 压测是否引发网络层面异常 | 核心诊断工具:查看流量的允许/拒绝状态、DNS 请求链路 |
1.4 Cilium 网络故障诊断在课程中的定位
本课程将 Cilium 网络故障诊断 定位为沙盘实践的 “诊断终点”。etcd 压测是触发故障的 “压力源”,而 Cilium 网络故障是运维人员需要识别、定位并解决的 “目标问题”。二者在课程中的关系如下:
- 压测驱动诊断:通过 etcd 压测模拟真实场景下的性能劣化,观察 Cilium 组件(如 kvstore、endpoint 控制器)在 etcd 压力下的行为变化。
- 故障注入验证:在沙盘中主动注入 Cilium 网络故障(如策略冲突、隧道 MTU 问题、eBPF map 溢出),训练学员从监控指标、Hubble 流量、etcd 日志中定位根因。
- 诊断闭环:每个故障场景都要求学员完成“发现告警 → 关联指标 → 定位组件 → 修复验证”的完整闭环,其中 etcd 压测数据是重要的辅助线索。
课程核心逻辑:etcd 压测 ≠ 目的,而是手段。真正的目的是通过压测暴露 Cilium 网络在极端条件下的脆弱点,并训练学员掌握基于 eBPF 的可观测性工具进行精准诊断。
1.5 课程章节导航
本课程共 30 章,按 “基础 → 压测 → 故障注入 → 诊断实战 → 进阶调优” 的路径组织。第 1 章为导论与架构总览;第 2-5 章讲解沙盘部署与 etcd 压测基础;第 6-15 章聚焦 Cilium 网络故障诊断核心方法;第 16-25 章为多集群场景下的综合故障实战;第 26-30 章涵盖性能调优与生产最佳实践。
前置要求:建议学员在开始本课程前,已具备基本的 Kubernetes 集群操作能力(kubectl、Helm)、了解 etcd 的基本概念(Raft、key-value 存储)、熟悉 Cilium 的安装与基础配置。如对上述内容不熟悉,建议先完成官方入门教程。