企业上云-集群内资源迁移(Velero):目标集群应用恢复

时间:2025-02-12 14:52:30

目标集群应用恢复

由于自建集群与后端的存储基础设施不同,集群迁移后会遇到Pod无法挂载PV的问题。因此在进行迁移时需要对新集群中的StorageClass进行适配,从而在创建工作负载时可以屏蔽两个集群之间底层存储接口的差异,申请相应类型的存储资源,相关操作请参考StorageClass更新适配。若您使用 对象存储迁移 服务 OMS 完成存储迁移,可参考对接已有对象存储将对象存储桶挂载到应用实例。

  1. 通过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  

  2. 使用Velero工具创建restore,指定名称为wordpress-backup的备份,将Wordpress应用恢复至CCE集群。

    velero restore create --from-backup wordpress-backup

    可通过velero restore get语句查看应用恢复情况。

  3. 恢复完成后查看应用实例是否正常运行,可能存在其他的更新适配问题,请参考资源更新适配中的步骤排查解决。
support.huaweicloud.com/macce-ctf/cce_bestpractice_0024.html