温馨提示×

centos k8s集群备份与恢复

小樊
52
2025-06-06 11:26:56
栏目: 智能运维

在CentOS上备份和恢复Kubernetes(k8s)集群的方法有多种,以下是一些常见的方法:

基于etcd备份

etcd是Kubernetes集群中的关键组件,所有的集群配置、状态和元数据都存储在etcd中。因此,备份etcd数据是备份整个Kubernetes集群的最佳方式。

备份步骤:

  1. 使用etcdctl命令进行etcd数据的备份,创建快照以保存特定时间点的数据状态。
etcdctl snapshot save /path/to/backup/snapshot.db 

恢复步骤:

  1. 停止etcd服务。
  2. 将损坏的数据文件移至其他位置。
  3. 使用etcdctl工具从备份中恢复数据。
etcdctl snapshot restore /path/to/backup/snapshot.db --data-dir /var/lib/etcd/ 

恢复etcd数据后,可能需要重启kubelet服务:

systemctl restart kubelet 

并验证恢复:

kubectl get pods 

基于Velero备份

Velero是一个开源的Kubernetes备份与恢复工具,支持对整个集群或选定资源进行备份、恢复,以及在不同Kubernetes集群之间迁移资源。

备份步骤:

  1. 安装Velero。
wget https://github.com/vmware-tanzu/velero/releases/download/v1.6.0/velero-v1.6.0-linux-amd64.tar.gztar -zxvf velero-v1.6.0-linux-amd64.tar.gz && cd velero-v1.6.0-linux-amd64/ 
  1. 配置对象存储服务(如创建minio服务)。
  2. 创建Velero的命名空间和存储卷。
kubectl create ns velero apiVersion: v1 kind: PersistentVolume metadata: name: velero-pv spec: capacity: storage: 100Gi accessModes: - ReadWriteMany nfs: server: <NFS_SERVER> path: /velero-backups/k8s-dev persistentVolumeReclaimPolicy: Retain 
  1. 使用Velero创建备份。
velero backup create my-backup --include-namespaces nginx-example --waitBackup 

恢复步骤:

  1. 部署一个测试服务(如nginx)。
kubectl apply -f examples/base.yaml 
  1. 使用Velero恢复备份。
velero restore create my-restore --backup-name my-backup 

使用ACK备份中心进行备份与恢复

ACK备份中心支持创建周期性的备份计划或单次的应用备份,并允许选择需要备份的应用,支持有状态应用的存储卷数据备份。

备份策略:

  • ACK备份中心支持命名空间、标签、资源类型等维度的备份选择。
  • 对于有状态应用,支持同时备份业务挂载的存储卷数据。

恢复策略:

  • 在恢复阶段,ACK备份中心支持自动适配目标集群环境,确保业务无缝重启。
  • 支持的集群修改方式包括默认修改、常用修改和通用修改。

以上就是在CentOS上备份和恢复Kubernetes集群的几种方法。在选择备份与恢复策略时,应考虑数据的重要性和更新频率,以及备份的存储位置和自动化程度。定期检查备份文件的完整性和可恢复性,以确保在需要时能够成功恢复数据。

0