1. 课程导论:SLO与自愈的概念、Kubernetes自愈能力概述、本课程目标与受众
1.1 从SRE基石到自愈闭环
在站点可靠性工程(SRE)实践中,服务等级目标(SLO)是衡量系统健康度的核心量化指标。传统运维依赖人工告警与被动响应,而现代云原生架构要求系统具备自愈(Self-Healing)能力——即在检测到SLO偏离时,自动触发修复动作,将系统拉回健康状态。
核心公式: 自愈 = 持续观测(SLO) + 事件判定(Burn Rate) + 自动化修复(Operator/Workflow)
本课程将SLO与自愈能力深度绑定,构建一套基于SLO事件触发验证的测试方法论,确保自愈逻辑在真实故障场景下可被量化验证。
1.2 SLO与自愈概念对比
| 概念 | 定义 | 在自愈中的角色 |
|---|---|---|
| SLO | 服务等级目标,如99.9%可用性、P99延迟<200ms | 自愈触发阈值与验证标准 |
| SLI | 服务等级指标,如请求成功率、延迟分布 | 自愈闭环中的实时观测数据源 |
| Burn Rate | 错误预算消耗速率,衡量SLO偏离的紧急程度 | 决定自愈动作的优先级与响应级别 |
| 自愈动作 | Pod重启、流量切换、扩容、配置回滚等 | SLO偏离后的自动化修复执行单元 |
| 验证闭环 | 自愈后重新评估SLO是否恢复 | 确认修复有效,避免无限循环 |
1.3 Kubernetes原生自愈能力概述
Kubernetes内置了多层自愈机制,但仅靠原生能力无法覆盖复杂的SLO驱动场景。下表梳理了K8s原生自愈与SLO驱动自愈的差异:
| 层级 | K8s原生能力 | SLO驱动增强方向 |
|---|---|---|
| Pod级别 | liveness/readiness探针、restartPolicy | 基于应用层SLO(如P99延迟)触发优雅重启 |
| 节点级别 | Node Controller驱逐、污点容忍 | 结合集群级SLO(如节点资源利用率)触发主动排空 |
| 工作负载级别 | ReplicaSet自动恢复、HPA水平扩缩 | 基于Burn Rate动态调整扩缩阈值与步长 |
| 服务网格级别 | 无原生支持 | 通过Istio/Envoy指标触发流量切换或熔断 |
关键洞察: 原生K8s自愈是"进程存活"级别的修复,而SLO驱动自愈是"业务健康"级别的修复。本课程聚焦后者,通过事件触发验证将两者桥接。
1.4 SLO事件触发自愈架构
下图展示了基于SLO事件触发自愈的核心架构,包含观测、判定、执行、验证四个阶段:
1.5 本课程目标与受众
课程目标
- 掌握SLO驱动的自愈测试方法论: 从指标定义、Burn Rate计算到事件触发验证的完整链路。
- 构建可复用的自愈测试框架: 基于Kubernetes Operator、Chaos Mesh、Prometheus等工具,实现故障注入与SLO验证的自动化。
- 建立SLO验证闭环: 确保每次自愈动作后,系统SLO能够恢复到预期水平,避免"假自愈"。
- 产出可量化的测试报告: 通过SLO恢复时间、Burn Rate消耗、自愈成功率等指标评估自愈效果。
目标受众
| 角色 | 前置知识要求 | 本课程核心收益 |
|---|---|---|
| SRE工程师 | 熟悉SLO/SLI概念、K8s基础运维 | 将SLO从监控指标转化为自愈驱动引擎 |
| K8s平台工程师 | K8s Operator开发经验、CRD理解 | 设计SLO感知的自愈Operator与控制器 |
| 测试架构师 | 混沌工程基础、自动化测试框架设计 | 构建SLO驱动的故障注入与验证测试体系 |
| DevOps工程师 | CI/CD流程、Prometheus/Grafana使用 | 将自愈验证集成到发布流水线中 |
重要提示: 本课程不教授基础K8s操作或PromQL语法。学员应具备K8s集群管理经验,并了解Prometheus指标采集与告警规则配置。课程中涉及的所有故障注入操作必须在非生产环境中执行。
1.6 课程内容结构概览
本课程共30章,分为四大模块,逐步构建SLO事件触发自愈测试的完整知识体系:
- 基础篇(第1-8章): SLO/SLI/Burn Rate理论、K8s自愈机制深度解析、事件触发模型设计。
- 工具篇(第9-16章): Prometheus SLO监控配置、Chaos Mesh故障注入、Argo Workflows事件编排、自愈Operator开发。
- 实践篇(第17-24章): 典型故障场景(Pod崩溃、网络延迟、节点故障)的自愈测试用例设计与执行。
- 进阶篇(第25-30章): 多SLO联合触发、自愈策略调优、SLO验证报告生成、生产环境最佳实践。
学习建议: 每章末尾包含"自愈验证清单"与"常见陷阱",建议学员在实验环境中同步操作。第17章起提供完整的测试脚本与YAML配置,可直接用于自愈场景验证。