首页主机资讯centos上k8s备份与恢复

centos上k8s备份与恢复

时间2025-11-20 16:13:03发布访客分类主机资讯浏览1163
导读:CentOS 上 Kubernetes 备份与恢复实战指南 一 备份范围与策略 备份范围应包含: etcd 数据:Kubernetes 的核心状态存储,包含集群配置与对象状态。 Kubernetes 资源对象:如 Pod、Service...

CentOS 上 Kubernetes 备份与恢复实战指南

一 备份范围与策略

  • 备份范围应包含:
    • etcd 数据:Kubernetes 的核心状态存储,包含集群配置与对象状态。
    • Kubernetes 资源对象:如 Pod、Service、Deployment、ConfigMap、Secret、PVC/PV 声明 等。
    • 节点与持久化数据:节点上重要目录(如 /var/lib/kubelet 等)及外部存储(如 NFS、Ceph、云盘)的数据。
  • 策略要点:
    • 明确备份频率(如每日/每周)与保留周期,并设定异地/多副本存储。
    • 选择工具:资源级与迁移场景优先 Velero;控制面灾难恢复依赖 etcd 快照;节点/外部数据用 tar/rsync 等常规手段。
    • 定期演练恢复校验备份完整性,确保可恢复性与可用性。

二 使用 Velero 进行集群资源与持久卷备份恢复

  • 安装与存储后端
    • 准备对象存储(如 MinIO/S3),创建 Bucket 与访问密钥。
    • 安装 Velero 客户端与服务端,配置 S3 凭证文件 credentials-velero,指定备份存储位置(Bucket、区域等)。
  • 备份
    • 全量备份:velero backup create < backup-name> --wait
    • 指定命名空间:velero backup create < backup-name> --include-namespaces < ns1,ns2>
    • 按资源过滤:velero backup create < backup-name> --selector < key=value>
  • 恢复
    • 全量恢复:velero restore create --from-backup < backup-name>
    • 指定命名空间:velero restore create --from-backup < backup-name> --include-namespaces < ns1,ns2>
  • 迁移场景
    • 目标集群安装 Velero(同存储后端),直接 velero restore create --from-backup < backup-name> 即可完成跨集群迁移。
  • 提示
    • 确保源/目标集群的 存储类(StorageClass)网络插件 等一致或兼容;恢复前评估应用与存储的兼容性容量

三 使用 etcd 快照进行控制面灾难恢复

  • 备份 etcd(任选一个控制面节点执行)
    • 设置 API 版本并保存快照:
      export ETCDCTL_API=3
      etcdctl --endpoints=https://127.0.0.1:2379 \
        --cacert=/etc/kubernetes/pki/etcd/ca.crt \
        --cert=/etc/kubernetes/pki/etcd/server.crt \
        --key=/etc/kubernetes/pki/etcd/server.key \
        snapshot save /opt/etcd-backup-$(date +%F).db
      
    • 建议同时备份 /etc/kubernetes/var/lib/etcd 目录,便于配置与数据一致性校验。
  • 恢复 etcd
    • 单节点或 kubeadm 默认部署
      • 暂停控制面静态 Pod:mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak
      • 清理数据目录:rm -rf /var/lib/etcd/*
      • 恢复快照:etcdctl snapshot restore /opt/etcd-backup-2025-11-20.db --data-dir=/var/lib/etcd
      • 恢复目录权限:chown -R etcd:etcd /var/lib/etcd
      • 恢复静态 Pod:mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
      • 重启 kubelet:systemctl restart kubelet,等待控制面就绪。
    • 多节点 etcd 集群
      • 在每个 master 节点依次:暂停静态 Pod、清理 /var/lib/etcd
      • 在每个节点用快照恢复,并为每个节点指定唯一的 –name–initial-advertise-peer-urls–initial-cluster 等参数(与集群成员信息一致)。
      • 恢复 /etc/kubernetes/manifests 并重启 kubelet,观察成员健康与集群状态。

四 节点与外部存储数据备份恢复

  • 节点与配置
    • 备份关键目录与证书:/etc/kubernetes/var/lib/etcd/var/lib/kubelet 等;必要时使用 tar 打包归档。
  • 应用数据(PV/PVC)
    • 文件/块存储:在节点或存储侧使用 tar/rsync 定期同步到备份仓库;数据库等应用层建议使用各自工具(如 mysqldump、pg_dump)进行一致性备份。
    • 示例(节点本地目录):
      rsync -avz --delete /var/lib/myapp/data /backup/myapp/
      
    • 恢复时按相同路径回灌,并确保 权限/属主SELinux/AppArmor 上下文一致。

五 验证与注意事项

  • 定期演练:从备份中执行小规模恢复全量恢复演练,校验 Pod 可用性、数据一致性、网络与存储 是否正常。
  • 版本与兼容:确保 etcdctl 与 etcd 版本匹配,Kubernetes 版本升级/回滚时验证备份可用性。
  • 安全与合规:保护 证书、密钥、备份存储 的访问权限;按业务需求设置 保留策略异地容灾
  • 影响评估:备份/恢复会产生 API 与 IO 负载,在业务低峰期执行,并控制并发与速率。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos上k8s备份与恢复
本文地址: https://pptw.com/jishu/752152.html
k8s如何优化centos存储 centos与k8s版本选择

游客 回复需填写必要信息