##安装velero
git地址:
https://github.com/vmware-tanzu/velero
#https://github.com/vmware-tanzu/velero/releases/tag/v1.9.3 wget https://github.com/vmware-tanzu/velero/releases/download/v1.9.3/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部署参照另一篇文章docker-compose部署
创建minio凭证文件
cat >credentials-velero <<EOF [default] aws_access_key_id = T6uyCVYwgIJe9ZWC7fDQ aws_secret_access_key = ********************** EOF
安装velero
因为有些环境拉取不到国外的镜像,所以我拉到本地打了tag上传到了阿里云,没有做任何修改,可放心使用
官方的参数像是--image velero/velero:v1.9.3 --plugins velero/velero-plugin-for-aws:v1.2.1
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 \
--default-volumes-to-restic \
--use-restic \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio-headless.mid \
--wait
卸载velero
velero uninstall
迁移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 zadig-20230717 --include-namespaces zadig
查看备份进度
velero backup describe zadig-20230717
查看备份日志
velero backup logs zadig-20230717
这时候到minio控制台可以看到有数据已经写入了
#仅备份pv和pvc的参数(适用于仅更换存储类不迁移集群的情况)
velero backup create test--include-resources pvc,pv --include-namespaces zadig
velero restore create --from-backup <backup-name> --namespace-mappings <source-namespace>:<target-namespace>

