首页主机资讯CentOS上Kubernetes的备份与恢复方法有哪些

CentOS上Kubernetes的备份与恢复方法有哪些

时间2025-11-28 12:09:04发布访客分类主机资讯浏览991
导读:CentOS上Kubernetes的备份与恢复方法 一、核心备份对象与总体策略 备份对象 etcd 数据:Kubernetes 的“唯一数据源”,包含集群状态与配置。 Kubernetes 资源对象:如 Pod、Deployment、S...

CentOS上Kubernetes的备份与恢复方法

一、核心备份对象与总体策略

  • 备份对象
    • etcd 数据:Kubernetes 的“唯一数据源”,包含集群状态与配置。
    • Kubernetes 资源对象:如 Pod、Deployment、Service、ConfigMap、Secret、PVC/PV 声明 等。
    • 持久化卷数据:数据库、日志等落在 PV/PVC 或外部存储的数据。
    • 节点与配置:如 /etc/kubernetes/ 证书与清单、/var/lib/etcd/ 数据目录、节点上重要目录。
  • 策略要点
    • 明确备份范围与频率(每日/每周)保留周期异地/多活存放。
    • 选择工具:集群级用 Velero;控制面“硬核”恢复用 etcd 快照;节点/文件级用 tar/rsync
    • 定期做恢复演练完整性校验,确保可恢复性与恢复时间目标(RTO/RPO)达标。

二、etcd快照备份与恢复(控制面一致性)

  • 适用场景
    • 需要恢复整个集群到某个时间点(如误操作、灾难恢复、升级回滚)。
  • 备份步骤
    • 准备证书与端点(示例为 kubeadm 默认路径与本地端点):
      • 导出 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 /backup/etcd-$(date +%F-%H%M).db
    • 建议同时备份 /etc/kubernetes//var/lib/etcd/ 目录以便“文件级”回滚。
  • 恢复步骤
    • 单节点/静态 Pod 场景(kubeadm)
      • 暂停控制面:mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak
      • 清理数据:rm -rf /var/lib/etcd/*
      • 恢复快照:etcdctl snapshot restore /backup/etcd-2025-11-28.db --data-dir=/var/lib/etcd
      • 恢复清单:mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
      • 验证:kubectl get pod -n kube-system,必要时重启 kubelet。
    • 多节点/集群场景
      • 在每个 master 节点上先暂停控制面并清理 /var/lib/etcd,随后分别执行 snapshot restore,并指定本节点的 –name–initial-advertise-peer-urls–initial-cluster 等参数,确保集群成员信息一致后启动控制面。
  • 校验与提示
    • 校验快照:etcdctl --write-out=table snapshot status /backup/etcd-*.db
    • 证书路径与端点可从 kube-system 命名空间的 etcd Pod 描述中获取,避免手工错误。

三、Velero备份与恢复(集群资源与PV)

  • 适用场景
    • 命名空间/资源类型做定期备份、跨集群迁移、按需颗粒度恢复
  • 安装与存储后端
    • 部署对象存储(如 MinIO)作为备份仓库,创建 Bucketcredentials-velero 凭证文件。
    • 安装 Velero 客户端与服务端,配置默认备份存储位置(Bucket、Region、凭证)。
  • 备份与恢复
    • 备份:velero backup create nginx-backup --include-namespaces nginx-example --wait
    • 恢复:velero restore create --from-backup nginx-backup
    • 支持备份 PV(Restic/CSI 插件按需启用),支持定时备份保留策略
  • 迁移提示
    • 目标集群需预先安装 Velero 并配置相同/兼容的 存储类 与网络插件,确保 PV 可绑定与应用可启动。

四、资源清单与节点文件级备份(轻量/快速回滚)

  • 资源清单导出
    • 全量导出:kubectl get all --all-namespaces -o yaml > all-resources.yaml
    • 关键资源:kubectl get configmap --all-namespaces -o yaml > all-configmaps.yaml
    • 密钥:kubectl get secret --all-namespaces -o yaml > all-secrets.yaml(注意 base64 编码,仅作迁移/审计参考)
    • PVC 声明:kubectl get pvc --all-namespaces -o yaml > all-pvcs.yaml
  • 节点与目录备份
    • 打包备份:tar czvf etcd-backup-$(date +%F).tar.gz /var/lib/etcd/
    • 证书与清单:tar czvf k8s-config-$(date +%F).tar.gz /etc/kubernetes/
    • 文件同步:rsync -avz --delete /path/to/pv/data /backup/pv/
    • 自动化:结合 crontab 定时执行与日志轮转,便于审计与回滚。

五、实践建议与注意事项

  • 版本与兼容
    • etcd v3 API 是备份/恢复的基础(Kubernetes 1.13+ 默认使用 v3);恢复时保证 Kubernetes 版本与备份时尽量一致,避免 API/数据不兼容。
  • 一致性与可用性
    • 备份 etcd 时尽量在维护窗口进行,避免业务写入影响一致性;恢复前先演练并校验快照状态。
  • 存储与保留
    • 备份存储建议异地/多副本,设置保留周期定期清理策略,避免容量风险。
  • 恢复顺序
    • 控制面恢复(etcd)→ 核心组件就绪 → 资源对象恢复(Velero/清单)→ PV 数据恢复 → 应用自检与流量切换。
  • 安全合规
    • Secret 包含敏感信息,清单备份需配合 RBAC加密 策略;传输与存放过程使用 TLS 与最小权限访问。

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


若转载请注明出处: CentOS上Kubernetes的备份与恢复方法有哪些
本文地址: https://pptw.com/jishu/758894.html
centos jmeter如何进行结果分析 Kubernetes在CentOS上的日志管理策略是什么

游客 回复需填写必要信息