适用场景
混沌工程不是"搞破坏",而是用受控实验回答:如果这个组件挂了,系统会怎样?预案有效吗?
配置步骤(注入与观察)
# 常见注入方式
# 1) 删除 Pod(验证自愈)
kubectl delete pod 服务-xxx -n app
# 2) 网络延迟/丢包(tc / chaos-mesh)
# 3) 依赖不可用(屏蔽出网 / 停掉从库)
# 4) 资源压力(CPU/内存/磁盘 IO 压测)
关键参数与建议
- 先定义稳态指标(SLI),确保实验可判断
- 从小范围开始:非核心业务、单实例、短时间
- 实验要有终止条件与一键停止
- 覆盖场景:实例宕机、网络延迟/丢包、依赖不可用、磁盘慢、时钟偏移
- 产出:容错缺陷清单与预案改进项
容易踩的坑
- 直接在生产高峰实验
- 注入后不观察指标,凭感觉判断
- 未通知相关方,被误判为真实故障
验证与巡检
kubectl get pods -n app -w
- 巡检:实验记录、指标对比、通知记录
小结
混沌实验的验收:每次实验都有稳态对比与问题清单。没有产出改进项的实验只是"折腾"。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。