1. 课程背景与目标
1.1 课程背景:为什么需要这次压测复盘?
在 Kubernetes 集群大规模升级过程中,etcd 作为集群状态存储的核心组件,其稳定性直接决定了升级的成败。2024 年 Q2,我们针对某生产集群(节点规模 5000+、Pod 规模 12 万+)执行了 etcd 配额(--quota-backend-bytes)从 8 GiB 升级至 16 GiB 的操作。升级完成后,集群出现了以下异常现象:
- 写延迟飙升:etcd 写入 P99 延迟从 8 ms 上升至 45 ms,持续约 30 分钟。
- Leader 选举抖动:升级后 2 小时内发生 3 次非预期 Leader 切换。
- 客户端超时:kube-apiserver 出现大量
etcdserver: request timed out错误。 - 存储空间碎片化:升级后数据库大小未显著增长,但
db size in use与db total size差距扩大至 40%。
事后分析发现,问题根因并非配额升级操作本身,而是升级前未对 配额校准流程 进行充分的压力测试与容量验证。本次课程将完整复盘该事故,提炼出一套可复用的压测方法论与校准流程。
核心教训: 配额升级不是简单的参数修改,而是一次涉及存储引擎、压缩策略、客户端连接池、网络吞吐的全局状态变更。未经压测校准的配额变更,等同于在生产环境做实验。
1.2 课程目标受众
| 角色 | 关注点 | 预期收获 |
|---|---|---|
| SRE / 运维工程师 | etcd 集群日常运维、升级、故障恢复 | 掌握配额升级的完整压测流程与风险控制手段 |
| 性能测试 / 质量保障工程师 | 压测场景设计、指标采集、瓶颈分析 | 学会构建 etcd 专项压测模型与校准指标体系 |
| 平台架构师 | 集群容量规划、组件选型、SLA 制定 | 理解配额与性能的量化关系,优化架构决策 |
| Kubernetes 开发者 / 贡献者 | etcd 客户端行为、存储机制、限速逻辑 | 深入 etcd 内部存储模型与配额校准算法 |
1.3 课程结束后应掌握的核心能力
完成本课程后,学员将具备以下 5 项核心能力:
- 压测场景设计能力:能够根据生产流量特征,设计覆盖读写混合、突发写入、网络分区、节点故障等场景的 etcd 压测方案。
- 配额校准分析能力:理解
quota-backend-bytes与db size、历史版本堆积、碎片率的量化关系,能通过压测数据校准最优配额值。 - 指标解读与瓶颈定位能力:熟练使用
etcdctl endpoint status、etcdctl check perf、Prometheus 指标(etcd_server_leader_changes_seen_total、etcd_disk_wal_fsync_duration_seconds等)进行根因分析。 - 升级风险预判与回滚能力:制定配额升级的灰度策略、健康检查清单、回滚触发条件,确保变更可观测、可管控。
- 压测报告与复盘文档编写能力:按照本课程提供的模板,输出结构化的压测报告与事故复盘文档,推动团队知识沉淀。
1.4 课程知识体系全景图
下图展示了本次课程的核心知识模块及其关联关系,帮助学员建立全局视角:
学习建议: 建议按照图中模块顺序学习,从事故复盘入手建立感性认知,再深入存储模型与校准原理,最后掌握压测、分析、优化、回滚的完整闭环。每章末尾的实战练习请务必动手操作。
1.5 课程产出物清单
本课程将提供以下可直接用于工作的产出物:
| 产出物 | 格式 | 用途 |
|---|---|---|
| 压测场景模板(YAML) | .yaml |
直接导入压测工具,覆盖 6 种标准场景 |
| 指标采集 Dashboard(JSON) | .json |
导入 Grafana,实时监控压测过程 |
| 配额校准计算表(Excel) | .xlsx |
输入压测数据,自动输出推荐配额值 |
| 升级健康检查清单(Markdown) | .md |
升级前逐项检查,降低变更风险 |
| 事故复盘报告模板(Markdown) | .md |
标准化复盘流程,沉淀团队经验 |