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插件瓶颈 整个集群

瓶颈分析的核心思想可以概括为三个原则:

  1. 全局视角:不只看单个Pod的指标,要关联节点、控制面和业务SLA。
  2. 分层剥离:从应用层向下逐层排查,避免在错误层次上做优化。
  3. 数据驱动:依赖Metrics、Tracing、Events等可观测性数据,而非直觉。
K8s容量调优闭环:瓶颈分析驱动 ① 测量 Metrics/Events/Tracing ② 定位 分层瓶颈识别 ③ 优化 资源/架构/配置调整 ④ 验证 SLA达标/成本对比 持续迭代

1.3 课程目标与学习路径

本课程旨在帮助SRE和K8s运维人员建立一套可复用的容量调优方法论。完成学习后,你将能够:

  • ✅ 使用系统化的瓶颈分析框架,快速定位集群中的资源瓶颈。
  • ✅ 掌握CPU、内存、磁盘、网络四大维度的调优工具与策略。
  • ✅ 设计合理的HPA/VPA/CA策略,实现弹性与成本的平衡。
  • ✅ 通过实际案例,理解从单Pod到集群级的容量规划方法。

课程分为四个阶段,循序渐进:

阶段 章节范围 核心产出
基础篇 第1-5章 理解瓶颈分析模型,搭建可观测性环境
方法篇 第6-15章 掌握CPU/内存/磁盘/网络四大维度的调优方法
实践篇 第16-25章 HPA/VPA/CA配置、成本优化、故障场景演练
进阶篇 第26-30章 大规模集群容量规划、GPU/异构资源管理
课程知识体系架构 目标:基于瓶颈分析的K8s容量调优 CPU调优 Limit/Throttling/绑核 内存调优 OOM/Eviction/大页 磁盘调优 IOPS/吞吐/本地盘 网络调优 带宽/延迟/CNI Prometheus/Grafana Kubernetes Events eBPF/BPF Tools HPA/VPA/CA
学习建议:每章都配有可复用的命令和配置片段。建议在测试集群中同步操作,将理论转化为肌肉记忆。遇到瓶颈分析案例时,先尝试自己定位,再对照课程解法。

1.4 前置知识要求

为了获得最佳学习体验,建议你具备以下基础:

  • 熟悉Kubernetes核心概念(Pod、Deployment、Service、Node)。
  • 了解Linux资源管理基础(cgroup、namespace、top/htop)。
  • 有基本的PromQL查询能力(avg/rate/sum等聚合函数)。

如果你对上述内容尚不熟悉,建议先阅读K8s官方文档的“入门”部分,或参考本课程的附录章节(第30章)进行快速补课。