🛡️ 整体方针 | Backup Policy
为了防止由于单点故障导致的数据丢失,集群实施了 “双轨制” 备份策略:- 本地快照: 存储在
worker-03的独立备份分区中。 - 异地转储: (计划中) 将压缩包定期同步至外部 S3 或 NAS 存储。
🏗️ 数据库备份 | Database Backups
MongoDB (Rocket.Chat)
这是最重要的社交数据资产,自动化脚本位于manifests/infra/backup/。
- 频率: 每日凌晨 3:00。
- 方法: 使用
mongodump导出,并进行.tar.gz压缩。 - 清理: 自动保留最近 7 天的备份文件。
PostgreSQL (System Infra)
承载了 n8n 和 Metabase 的核心配置。- 方法: 周期性通过 CronJob 执行
pg_dump。 - 路径: 挂载在专属的
backup-pvc卷上。
🖥️ 节点级备份 | Node Backups
对于非 K8s 管理的系统配置、SSL 证书及脚本,我们使用nodes-backup.sh 进行全量同步。
| 备份内容 | 源路径 | 备份频率 |
|---|---|---|
| SSL 证书 | /etc/letsencrypt | 每周一次 |
| NPM 全配置 | /var/lib/docker/volumes/npm_data | 每日一次 |
| 运维脚本 | /root/ops-scripts | 触发式同步 |
🚨 灾难恢复指南 | Recovery Guide
场景 A:单个数据卷损坏
场景 A:单个数据卷损坏
- 找到该服务最近的备份压缩包。
- 使用
tar -zxvf解压到/var/lib/rancher/k3s/storage/下的新目录。 - 重建对应的 PV/PVC 声明即可。
场景 B:集群完全崩溃
场景 B:集群完全崩溃
- 重装 K3s 集群。
- 先恢复基础设施配置(kubectl apply -f manifests/infra/)。
- 将备份数据回填至对应节点路径,再启动业务应用。