mgmt/docs/README-Backup.md

4.3 KiB
Raw Permalink Blame History

Nomad Jobs 备份管理

本文档说明如何管理和恢复 Nomad job 配置的备份。

📁 备份存储位置

本地备份

  • 路径: /root/mgmt/backups/nomad-jobs-YYYYMMDD-HHMMSS/
  • 压缩包: /root/mgmt/nomad-jobs-backup-YYYYMMDD.tar.gz

Consul KV 备份

  • 数据: backup/nomad-jobs/YYYYMMDD/data
  • 元数据: backup/nomad-jobs/YYYYMMDD/metadata
  • 索引: backup/nomad-jobs/index

📋 当前备份

2025-10-04 备份

  • 备份时间: 2025-10-04 07:44:11
  • 备份类型: 完整 Nomad jobs 配置
  • 文件数量: 25 个 .nomad 文件
  • 原始大小: 208KB
  • 压缩大小: 13KB
  • Consul KV 路径: backup/nomad-jobs/20251004/data

服务状态

  • Traefik (traefik-cloudflare-v1) - SSL证书正常
  • Vault (vault-cluster) - 三节点高可用集群
  • Waypoint (waypoint-server) - Web UI 可访问

域名和证书

  • 域名: *.git4ta.me
  • 证书: Let's Encrypt (Cloudflare DNS Challenge)
  • 状态: 所有证书有效

🔧 备份管理命令

查看备份列表

# 查看 Consul KV 中的备份索引
consul kv get backup/nomad-jobs/index

# 查看特定备份的元数据
consul kv get backup/nomad-jobs/20251004/metadata

恢复备份

# 从 Consul KV 恢复备份
consul kv get backup/nomad-jobs/20251004/data > nomad-jobs-backup-20251004.tar.gz

# 解压备份
tar -xzf nomad-jobs-backup-20251004.tar.gz

# 查看备份内容
ls -la backups/nomad-jobs-20251004-074411/

创建新备份

# 创建本地备份目录
mkdir -p backups/nomad-jobs-$(date +%Y%m%d-%H%M%S)

# 备份当前配置
cp -r components backups/nomad-jobs-$(date +%Y%m%d-%H%M%S)/
cp -r nomad-jobs backups/nomad-jobs-$(date +%Y%m%d-%H%M%S)/
cp waypoint-server.nomad backups/nomad-jobs-$(date +%Y%m%d-%H%M%S)/

# 压缩备份
tar -czf nomad-jobs-backup-$(date +%Y%m%d).tar.gz backups/nomad-jobs-$(date +%Y%m%d-*)/

# 存储到 Consul KV
consul kv put backup/nomad-jobs/$(date +%Y%m%d)/data @nomad-jobs-backup-$(date +%Y%m%d).tar.gz

📊 备份策略

备份频率

  • 自动备份: 建议每周一次
  • 重要变更前: 部署新服务或重大配置修改前
  • 紧急情况: 服务出现问题时立即备份当前状态

备份内容

  • 所有 .nomad 文件
  • 配置文件模板
  • 服务依赖关系
  • 网络和存储配置

备份验证

# 验证备份完整性
tar -tzf nomad-jobs-backup-20251004.tar.gz | wc -l

# 检查关键文件
tar -tzf nomad-jobs-backup-20251004.tar.gz | grep -E "(traefik|vault|waypoint)"

🚨 恢复流程

紧急恢复

  1. 停止所有服务

    nomad job stop traefik-cloudflare-v1
    nomad job stop vault-cluster
    nomad job stop waypoint-server
    
  2. 恢复备份

    consul kv get backup/nomad-jobs/20251004/data > restore.tar.gz
    tar -xzf restore.tar.gz
    
  3. 重新部署

    nomad job run backups/nomad-jobs-20251004-074411/components/traefik/jobs/traefik-cloudflare.nomad
    nomad job run backups/nomad-jobs-20251004-074411/nomad-jobs/vault-cluster.nomad
    nomad job run backups/nomad-jobs-20251004-074411/waypoint-server.nomad
    

部分恢复

# 只恢复特定服务
cp backups/nomad-jobs-20251004-074411/components/traefik/jobs/traefik-cloudflare.nomad components/traefik/jobs/
nomad job run components/traefik/jobs/traefik-cloudflare.nomad

📝 备份记录

日期 备份类型 服务状态 大小 Consul KV 路径
2025-10-04 完整备份 全部运行 13KB backup/nomad-jobs/20251004/data

⚠️ 注意事项

  1. 证书备份: SSL证书存储在容器内重启会丢失
  2. Consul KV: 重要配置存储在 Consul KV 中,需要单独备份
  3. 网络配置: Tailscale 网络配置需要单独记录
  4. 凭据安全: Vault 和 Waypoint 的凭据存储在 Consul KV 中

🔍 故障排除

备份损坏

# 检查备份文件完整性
tar -tzf nomad-jobs-backup-20251004.tar.gz > /dev/null && echo "备份完整" || echo "备份损坏"

Consul KV 访问问题

# 检查 Consul 连接
consul members

# 检查 KV 存储
consul kv get backup/nomad-jobs/index

最后更新: 2025-10-04 07:45:00
备份状态: 当前备份完整可用
服务状态: 所有服务正常运行