企业上云-集群内资源迁移(Velero):目标集群应用恢复
目标集群应用恢复
由于自建集群与后端的存储基础设施不同,集群迁移后会遇到Pod无法挂载PV的问题。因此在进行迁移时需要对新集群中的StorageClass进行适配,从而在创建工作负载时可以屏蔽两个集群之间底层存储接口的差异,申请相应类型的存储资源,相关操作请参考StorageClass更新适配。若您使用 对象存储迁移 服务 OMS 完成存储迁移,可参考对接已有对象存储将对象存储桶挂载到应用实例。
- 通过kubectl连接CCE集群,这里选择创建一个原集群中相同名称StorageClass来完成适配。
本例中原集群的StorageClass名为local,存储类型为本地磁盘。本地磁盘存储完全依赖节点可用性,数据容灾性能差,节点不可用时将直接影响已有存储数据。因此CCE集群中的存储资源选用云硬盘存储卷,后端存储介质使用SAS存储。
- 包含PV数据的应用在CCE集群中进行恢复时,定义的StorageClass将会根据PVC动态创建相应的存储资源(如云硬盘)并挂载,请您知悉。
- 此处集群的存储资源可以根据需求进行更改,并非仅限于云硬盘存储卷。若需要挂载其他类型的存储,如文件存储、对象存储,请参考StorageClass更新适配进行适配。
被迁移侧集群YAML文件:
apiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: localprovisioner: kubernetes.io/no-provisionervolumeBindingMode: WaitForFirstConsumer
迁移侧集群YAML文件示例如下:allowVolumeExpansion: trueapiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: local selfLink: /apis/storage.k8s.io/v1/storageclasses/csi-diskparameters: csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io csi.storage.k8s.io/fstype: ext4 everest.io/disk-volume-type: SAS everest.io/passthrough: "true"provisioner: everest-csi-provisionerreclaimPolicy: DeletevolumeBindingMode: Immediate
- 使用Velero工具创建restore,指定名称为wordpress-backup的备份,将Wordpress应用恢复至CCE集群。
velero restore create --from-backup wordpress-backup
可通过velero restore get语句查看应用恢复情况。
- 恢复完成后查看应用实例是否正常运行,可能存在其他的更新适配问题,请参考资源更新适配中的步骤排查解决。