zadig社区分享:https://community.koderover.com/t/topic/672
安装velero参考这里:安装velero实现集群迁移
导出需要的crd资源清单yaml文件
kubectl get crd routetables.gateway.solo.io -oyaml >zadig-crd.yaml echo '---' >>zadig-crd.yaml kubectl get crd upstreamgroups.gloo.solo.io -oyaml >>zadig-crd.yaml echo '---' >>zadig-crd.yaml kubectl get crd authconfigs.enterprise.gloo.solo.io -oyaml >>zadig-crd.yaml echo '---' >>zadig-crd.yaml kubectl get crd ratelimitconfigs.ratelimit.solo.io -oyaml >>zadig-crd.yaml echo '---' >>zadig-crd.yaml kubectl get crd virtualhostoptions.gateway.solo.io -oyaml >>zadig-crd.yaml echo '---' >>zadig-crd.yaml kubectl get crd routeoptions.gateway.solo.io -oyaml >>zadig-crd.yaml |
在拥有pvc的pod上打上annotation,否则不会备份pv的数据
miniopodname=`kubectl -n zadig get pod -l app=minio|grep -v NAME|awk '{print $1}'` kubectl -n zadig annotate pod/$miniopodname backup.velero.io/backup-volumes=kr-minio --overwrite kubectl -n zadig annotate pod/kr-mysql-0 backup.velero.io/backup-volumes=data-kr-mysql-0 --overwrite kubectl -n zadig annotate pod/kr-mongodb-0 backup.velero.io/backup-volumes=data-kr-mongodb-0 --overwrite |
旧的集群上执行备份
velero backup create zadig-20230717 --include-namespaces zadig |
可以看到备份进度
(如果存储类发生变化需要创建以下文件,因为我是从nfs-storage迁移到cephfs-sc
)
创建crd资源文件,就是我们第一步导出的yaml
kubectl create -f zadig-crd.yaml |
如果新的集群存储类跟老的集群不一样,需要弄一个存储类转换的configmap,这里nfs-sc是老的集群的存储类,cephfs-sc是新的集群的存储类
vi change-storage-class.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-sc: cephfs-sc --- kubectl create -f change-storage-class-config.yaml |
执行恢复操作
velero restore create --from-backup zadig-20230717 |