rsync-cloud/sre-runbooks
GitHub: rsync-cloud/sre-runbooks
一套覆盖 Kubernetes 常见故障场景的生产级 SRE 运维操作手册,提供标准化的事件响应、诊断恢复流程、复盘模板和值班指南。
Stars: 0 | Forks: 0
# 📕 SRE Runbooks
**可用于生产环境的故障响应流程、复盘报告、值班指南以及监控操作手册。**
本仓库包含了我们的网站可靠性工程 (Site Reliability Engineering)
团队在快速诊断和解决故障时所依赖的 runbook。每份 runbook 的结构都
清晰明了,包含:**症状**、**诊断**、**恢复**和
**升级**。此外,它还包含了复盘报告和值班指南的模板,
以便任何工程师都能自信地履行值班职责。
## 📂 仓库结构
```
sre-runbooks/
├── runbooks/ # Incident‑specific procedures
│ ├── node-not-ready/
│ ├── pod-crashloopbackoff/
│ ├── high-cpu/
│ ├── disk-pressure/
│ ├── memory-leak/
│ ├── database-failover/
│ ├── network-latency/
│ ├── tls-certificate-expiry/
│ └── dns-failure/
├── postmortems/ # Postmortem template
├── oncall/ # On‑call guide and escalation contacts
├── monitoring/ # Alert‑to‑runbook mappings
├── .github/workflows/ # CI (markdown linting)
└── runbooks/template.md # Runbook template for new incidents
```
## 🚀 使用 Runbook
### 发生故障期间
1. 从上面的列表中打开相关的 runbook。
2. 按照**诊断**部分的说明确认问题。
3. 按顺序执行**恢复**步骤。
4. 如果恢复失败,请按照**升级**部分的联系方式进行处理。
5. 故障处理完毕后,使用 `postmortems/template.md` 编写复盘报告。
### 添加新的 Runbook
1. 将 `runbooks/template.md` 复制到 `runbooks/` 下的一个新目录中。
2. 在各个部分中填入准确的命令和操作流程。
3. 尽可能在非生产环境中测试这些步骤。
4. 提交 pull request。
## 📋 Runbook 目录
| Runbook | 症状 | 关键恢复操作 |
|---------|----------|--------------|
| Node Not Ready | Node `NotReady`,pod 卡住 | 清理磁盘,重启 kubelet,cordon/drain |
| Pod CrashLoopBackOff | Pod 反复重启,`CrashLoopBackOff` 状态 | 检查日志,提高资源限制,回滚 deployment |
| High CPU | CPU > 90%,发生 throttling | 扩展 replicas,提高 limits,分析应用性能 |
| Disk Pressure | 出现 `DiskPressure` 状况,发生 evictions | 清理镜像,轮转日志,扩容磁盘 |
| Memory Leak | 内存持续增长,发生 OOMKilled | 暂时提高 limit,修复内存泄漏 |
| Database Failover | DB 无法连接,复制延迟 | 通过 RDS 进行 failover/提升 replica,更新 endpoint |
| Network Latency | 响应时间过长,发生超时 | 检查网络策略,重启 pod,检查 CNI 健康 |
| TLS Certificate Expiry | 证书过期错误 | 使用 cert-manager 重新签发,或手动替换 |
| DNS Failure | 名称解析失败,external-dns 问题 | 重启 CoreDNS,验证 external-dns 配置 |
## 📝 复盘报告
在每次重大故障发生后,请使用模板在 `postmortems/`
目录中创建复盘文件。复盘报告应保持“对事不对人”的原则,重点关注:
- 发生了什么?
- 为什么会发生?
- 我们将来该如何预防?
## 📞 值班指南
请参阅 `oncall/README.md` 获取值班入职指南,内容包括如何
确认告警、与利益相关者沟通以及如何进行升级处理。
## 🔄 CI/CD
每次 push 时都会运行一个 GitHub Actions 工作流 (`ci.yml`):
- **Markdown linting** – 确保 runbook 格式良好且一致。
这有助于维护所有文档的质量。
## 📄 许可证
MIT – 详见 [LICENSE](LICENSE)。
**当系统出现故障时,runbook 会将它们恢复如初。**
标签:Runbook, SRE, 偏差过滤, 子域名突变, 故障响应, 最佳实践, 运维, 防御加固