Skip to main content

🛡️ 整体方针 | Backup Policy

为了防止由于单点故障导致的数据丢失,集群实施了 “双轨制” 备份策略:
  1. 本地快照: 存储在 worker-03 的独立备份分区中。
  2. 异地转储: (计划中) 将压缩包定期同步至外部 S3 或 NAS 存储。

🏗️ 数据库备份 | Database Backups

MongoDB (Rocket.Chat)

这是最重要的社交数据资产,自动化脚本位于 manifests/infra/backup/
  • 频率: 每日凌晨 3:00。
  • 方法: 使用 mongodump 导出,并进行 .tar.gz 压缩。
  • 清理: 自动保留最近 7 天的备份文件。
# 执行手动补录备份
kubectl apply -f manifests/infra/backup/backup-db.yaml

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

  1. 找到该服务最近的备份压缩包。
  2. 使用 tar -zxvf 解压到 /var/lib/rancher/k3s/storage/ 下的新目录。
  3. 重建对应的 PV/PVC 声明即可。
  1. 重装 K3s 集群。
  2. 先恢复基础设施配置(kubectl apply -f manifests/infra/)。
  3. 将备份数据回填至对应节点路径,再启动业务应用。