1. 课程导论与目标:K8s 容量压测与巡检的重要性
在 Kubernetes 生产环境中,容量性能压测与巡检脚本编排是保障服务稳定性、资源利用率和故障快速恢复的两大核心手段。本课程从 SRE 实战视角出发,系统讲解如何设计压测方案、构建巡检体系、编排自动化脚本,并最终形成可落地的故障排查能力。
1.1 为什么需要 K8s 容量压测与巡检?
| 场景 | 无压测/巡检的风险 | 有压测/巡检的价值 |
|---|---|---|
| 大促流量洪峰 | Pod 突发 OOMKill、HPA 响应滞后、节点资源耗尽 | 提前发现容量瓶颈,精准配置 Request/Limit |
| 集群节点故障 | 调度器无法快速重调度,POD 长时间 Pending | 巡检脚本提前发现节点异常,触发自愈流程 |
| 版本升级/配置变更 | 回归性能劣化,QPS 下降 30% 未被感知 | 压测基线对比,快速定位劣化组件 |
| 资源碎片化 | 集群整体利用率低,但部分节点无法调度 | 巡检脚本定期分析碎片率,辅助碎片整理 |
核心观点:容量压测解决“能不能扛住”的问题,巡检脚本解决“是否健康”的问题,二者结合形成 K8s 集群的“体检+压力测试”闭环。
1.2 课程整体大纲
本课程共 30 章,分为四大模块:
- 基础与工具篇(第 1-6 章):K8s 资源模型、压测工具选型(k6 / Locust / wrk2)、巡检框架(Prometheus + Grafana + 自定义脚本)。
- 容量压测实战篇(第 7-15 章):单服务压测、全链路压测、HPA 压测、节点级压测、压测数据采集与基线建立。
- 巡检脚本编排篇(第 16-24 章):巡检项设计、脚本模板、定时编排、告警联动、巡检报告生成。
- 故障排查与综合案例篇(第 25-30 章):典型故障模式(OOM、CrashLoopBackOff、DNS 解析失败)、压测+巡检联合排障、混沌工程集成。
1.3 学习目标
| 目标维度 | 具体能力 |
|---|---|
| 容量评估 | 能独立设计 K8s 服务压测方案,输出 Request/Limit 推荐值、HPA 阈值、集群容量水位线 |
| 巡检体系 | 能编写可复用的巡检脚本(Shell / Python),集成 Prometheus 指标,实现定时巡检与自动告警 |
| 故障排查 | 能通过压测数据与巡检日志快速定位 OOM、网络延迟、调度失败等常见故障根因 |
| 自动化编排 | 能使用 CronJob + ConfigMap 编排巡检任务,结合 Argo Workflows 实现压测-巡检-报告全流程自动化 |
1.4 前置知识要求
建议前置基础:至少具备 3 个月以上的 K8s 日常操作经验,熟悉 kubectl 常用命令、Pod/Deployment/Service 基本概念,了解 Linux 基础命令和容器化原理。
- Kubernetes 基础:Pod、Deployment、Service、Ingress、ConfigMap、Secret、HPA、PV/PVC 的基本使用。
- Linux 运维基础:Shell 脚本编写、系统资源查看(top / free / iostat / netstat)、日志分析(journalctl / tail)。
- 网络与协议基础:HTTP 协议、TCP/IP 基础、DNS 解析流程。
- 监控基础:了解 Prometheus 指标采集、Grafana 图表查看,不要求精通。
- 编程基础:至少熟悉一种脚本语言(Python / Shell / Go),能阅读和修改简单脚本。
1.5 课程知识体系与学习路径
下图展示了本课程四大模块之间的依赖关系与学习路径:
1.6 课程配套环境与工具链
为保障学习效果,建议提前准备以下环境:
| 工具/环境 | 版本要求 | 用途 |
|---|---|---|
| Kubernetes 集群 | v1.24+ | 压测与巡检目标集群(推荐使用 Kind 或 Minikube 本地搭建) |
| k6 | v0.45+ | HTTP/gRPC 压测工具,支持 JavaScript 脚本 |
| Prometheus + Grafana | Prometheus v2.45+ / Grafana v9+ | 指标采集与可视化,巡检数据源 |
| kubectl + jq + yq | 最新稳定版 | 命令行操作与 JSON/YAML 解析 |
| Python 3.9+ | 3.9+ | 巡检脚本编写与数据处理 |
注意:压测时请使用独立 Namespace 或测试集群,避免对生产环境造成影响。巡检脚本在接入生产前需经过充分测试。