1. 课程导论:K8s容量调优的重要性、瓶颈分析的核心思想、课程目标与学习路径
1.1 为什么K8s容量调优是SRE的必修课
Kubernetes已经成为云原生时代的操作系统,但集群的“容量”并非无限。在实际生产环境中,资源分配不合理、突发流量冲击、节点碎片化等问题,往往导致以下后果:
- 成本失控:过度预留资源导致云账单飙升,闲置资源占比超过40%。
- 稳定性下降:Pod因资源争抢被OOM Kill,或节点因磁盘/网络瓶颈进入NotReady状态。
- 扩缩容滞后:HPA/VPA配置不当,业务高峰期出现大量请求超时。
- 排障困难:缺乏系统化的瓶颈定位方法,每次故障都靠“重启大法”临时止血。
核心观点:容量调优不是“一次性压测”,而是基于持续瓶颈分析的闭环优化过程。SRE需要从被动救火转向主动规划。
1.2 瓶颈分析的核心思想
瓶颈分析遵循“测量 → 定位 → 优化 → 验证”的循环。在K8s环境中,瓶颈可能出现在多个层次:
| 层次 | 典型瓶颈 | 影响范围 |
|---|---|---|
| 应用层 | 线程池耗尽、内存泄漏、慢SQL | 单个服务或Pod |
| 容器层 | CPU Throttling、OOM、磁盘IOPS打满 | Pod/Deployment |
| 节点层 | CPU/内存/网络带宽争抢、磁盘空间不足 | Node/集群 |
| 集群层 | API Server限流、etcd写入延迟、CNI/CSI插件瓶颈 | 整个集群 |
瓶颈分析的核心思想可以概括为三个原则:
- 全局视角:不只看单个Pod的指标,要关联节点、控制面和业务SLA。
- 分层剥离:从应用层向下逐层排查,避免在错误层次上做优化。
- 数据驱动:依赖Metrics、Tracing、Events等可观测性数据,而非直觉。
1.3 课程目标与学习路径
本课程旨在帮助SRE和K8s运维人员建立一套可复用的容量调优方法论。完成学习后,你将能够:
- ✅ 使用系统化的瓶颈分析框架,快速定位集群中的资源瓶颈。
- ✅ 掌握CPU、内存、磁盘、网络四大维度的调优工具与策略。
- ✅ 设计合理的HPA/VPA/CA策略,实现弹性与成本的平衡。
- ✅ 通过实际案例,理解从单Pod到集群级的容量规划方法。
课程分为四个阶段,循序渐进:
| 阶段 | 章节范围 | 核心产出 |
|---|---|---|
| 基础篇 | 第1-5章 | 理解瓶颈分析模型,搭建可观测性环境 |
| 方法篇 | 第6-15章 | 掌握CPU/内存/磁盘/网络四大维度的调优方法 |
| 实践篇 | 第16-25章 | HPA/VPA/CA配置、成本优化、故障场景演练 |
| 进阶篇 | 第26-30章 | 大规模集群容量规划、GPU/异构资源管理 |
学习建议:每章都配有可复用的命令和配置片段。建议在测试集群中同步操作,将理论转化为肌肉记忆。遇到瓶颈分析案例时,先尝试自己定位,再对照课程解法。
1.4 前置知识要求
为了获得最佳学习体验,建议你具备以下基础:
- 熟悉Kubernetes核心概念(Pod、Deployment、Service、Node)。
- 了解Linux资源管理基础(cgroup、namespace、top/htop)。
- 有基本的PromQL查询能力(avg/rate/sum等聚合函数)。
如果你对上述内容尚不熟悉,建议先阅读K8s官方文档的“入门”部分,或参考本课程的附录章节(第30章)进行快速补课。