# 混沌工程说明 ## 适用范围 - **仅 Staging 环境**:禁止在生产环境运行混沌实验 - **每月 1 次演练**:建议每月第一个工作周执行 - **演练窗口**:业务低峰期(02:00 - 05:00) ## 实验清单 | 实验 | 注入故障 | 验证目标 | |------|----------|----------| | `pod-delete` | 杀死 50% Pod | 自愈能力、副本数冗余 | | `pod-network-latency` | 注入 200ms 延迟 | 超时与重试、降级策略 | | `disk-fill` | 填充磁盘至 80% | 日志写入、磁盘告警 | ## 前置条件 1. Staging 环境已部署完整监控(Prometheus + Alertmanager + Grafana) 2. 已配置稳态探针(`steadyStateHypothesis`) 3. 已配置告警通道并验证可达 4. 演练参与者已就位(运维 + 研发 oncall) ## 演练流程 1. **演练前 30 分钟**:通知相关人员,确认稳态基线 2. **启动实验**:按顺序执行,单实验单次注入 3. **观察监控**:关注告警是否按预期触发、服务是否自愈 4. **演练后**:归档实验结果,更新本目录 README ## 回滚预案 - **5 分钟内未恢复自动回滚**:通过 Litmus `steadyStateHypothesis` 失败触发实验终止 - 手动回滚: ```bash kubectl delete chaosengine edu-chaos-experiments -n edu-monitoring kubectl rollout restart deployment/api-gateway -n edu-services ``` - 极端情况:直接缩容 / 扩容受影响 Deployment ## 安全约束 - 每次实验**只注入一种故障**,避免叠加影响判断 - 实验前快照数据库(参考 `infra/backup/backup-cron.sh`) - 实验期间禁止发布任何业务变更