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 实例与工作负载,模拟真实业务流量。

多集群 etcd 压测沙盘总体架构 管理集群 (Management Cluster) Prometheus + Grafana Hubble UI / CLI 压测任务调度器 故障注入器 业务集群 A (Cluster-A) etcd 实例 (3 节点) Cilium Agent 业务集群 B (Cluster-B) etcd 实例 (3 节点) Cilium Agent 工作负载层 (Workloads) 压测客户端 (etcd-benchmark) 业务微服务 (模拟流量) 网络故障探测 Pod Hubble Relay

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 的可观测性工具进行精准诊断。
etcd 压测与 Cilium 故障诊断的闭环关系 etcd 压测 高并发写入 / 事务压力 Cilium 组件受影响 kvstore 超时 / 策略同步延迟 网络故障显现 连通性中断 / 策略误拦截 诊断工具介入 Hubble / 指标 / 日志分析 修复验证后重新压测 诊断闭环:每次故障场景均需完成“压测触发 → 故障显现 → 工具诊断 → 修复验证”的完整循环

1.5 课程章节导航

本课程共 30 章,按 “基础 → 压测 → 故障注入 → 诊断实战 → 进阶调优” 的路径组织。第 1 章为导论与架构总览;第 2-5 章讲解沙盘部署与 etcd 压测基础;第 6-15 章聚焦 Cilium 网络故障诊断核心方法;第 16-25 章为多集群场景下的综合故障实战;第 26-30 章涵盖性能调优与生产最佳实践。

前置要求:建议学员在开始本课程前,已具备基本的 Kubernetes 集群操作能力(kubectl、Helm)、了解 etcd 的基本概念(Raft、key-value 存储)、熟悉 Cilium 的安装与基础配置。如对上述内容不熟悉,建议先完成官方入门教程。