##安装velero
wget https://github.com/vmware-tanzu/velero/releases/download/v1.11.0/velero-v1.9.3-linux-amd64.tar.gz tar zxvf velero-v1.9.3-linux-amd64.tar.gz cp velero-v1.9.3-linux-amd64/velero /usr/bin/
创建minio凭证,minio部署参照另一篇文章
cat >credentials-velero <<EOF [default] aws_access_key_id = T6uyCVYwgIJe9ZWC7fDQ ws_secret_access_key = ********************** EOF #1.9.3 docker pull velero/velero:v1.9.3 docker tag velero/velero:v1.9.3 registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero:v1.9.3 docker push registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero:v1.9.3 # docker pull velero/velero-plugin-for-aws:v1.2.1 docker tag velero/velero-plugin-for-aws:v1.2.1 registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero-plugin-for-aws:v1.2.1 docker push registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero-plugin-for-aws:v1.2.1
安装velero
velero install \ --provider aws \ --image registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero:v1.9.3 \ --plugins registry.cn-hangzhou.aliyuncs.com/zhengyu1992/velero-plugin-for-aws:v1.2.1 \ --namespace velero \ --bucket velero \ --use-volume-snapshots=false \ --secret-file ./credentials-velero \ --use-restic \ --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://10.10.21.48:9000 \ --wait
卸载velero
kubectl delete namespace/velero clusterrolebinding/velero kubectl delete crds -l component=velero
迁移storageclass,我们的目的是将nfs-storage中的数据迁移到rook-ceph-block
创建一个声明yaml文件
vi change-storage-class-config.yaml apiVersion: v1 kind: ConfigMap metadata: name: change-storage-class-config namespace: velero labels: velero.io/plugin-config: "" velero.io/change-storage-class: RestoreItemAction data: nfs-storage: rook-ceph-block kubectl create -f change-storage-class-config.yaml
开始备份
velero backup create mybackup --include-resources pvc,pv --include-namespaces default
查看备份进度
velero backup describe mybackup
查看备份日志
velero backup logs mybackup
这时候到minio控制台可以看到有数据已经写入了
删除原有的pvc,否则恢复的时候会提示冲突
kubectl delete pvc persistence-rabbitmq-cluster-server-0 persistence-rabbitmq-cluster-server-1 persistence-rabbitmq-cluster-server-2
恢复pv数据
velero restore create --from-backup mybackup
这里可以看到rabbitmq-cluster-server的storageclass已经变成了rook-ceph-block
我们尝试去启动pod