从备份恢复应用程序
本节介绍如何从备份恢复应用程序。
前提条件
为了从备份中恢复,我们假设应用程序所在的命名空间被意外删除了。
还原到同一命名空间
要从我们刚刚创建的备份中恢复,我们需要创建一个恢复自定义资源 (CR)。我们需要为其提供一个名称,提供我们想要从中恢复的备份的名称,并将 restorePVs 设置为 true。可以设置其他参数,如下所示"文档"。单击创建按钮。
apiVersion: velero.io/v1 kind: Restore apiVersion: velero.io/v1 metadata: name: restore namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true
当阶段显示完成时,您可以看到应用程序已恢复到拍摄快照时的状态。应用程序恢复到相同的命名空间。
还原到不同的命名空间
要将应用程序恢复到不同的命名空间,您可以在 Restore CR 的 yaml 定义中提供 namespaceMapping。
以下示例 yaml 文件创建一个 Restore CR,以将应用程序及其持久存储从 postgresql 命名空间恢复到新的命名空间 postgresql-restored。
apiVersion: velero.io/v1 kind: Restore metadata: name: restore-to-different-ns namespace: openshift-adp spec: backupName: backup-postgresql-ontaps3 restorePVs: true includedNamespaces: - postgresql namespaceMapping: postgresql: postgresql-restored
当阶段显示完成时,您可以看到应用程序已恢复到拍摄快照时的状态。应用程序将恢复到 yaml 中指定的不同命名空间。
还原到不同的存储类别
Velero 提供了通过指定 json 补丁来修改恢复期间资源的通用功能。在恢复资源之前,json 补丁会应用到资源上。 json 补丁在 configmap 中指定,并且在 restore 命令中引用该 configmap。此功能使您能够使用不同的存储类别进行恢复。
在下面的示例中,应用程序在部署期间使用 ontap-nas 作为其持久卷的存储类。创建了名为backup-postgresql-ontaps3的应用程序备份。
通过卸载应用程序来模拟应用程序的丢失。
要使用不同的存储类(例如 ontap-nas-eco 存储类)恢复虚拟机,您需要执行以下两个步骤:
步骤 1
在 openshift-adp 命名空间中创建一个配置映射(控制台),如下所示: 填写屏幕截图中显示的详细信息: 选择命名空间:openshift-adp 名称:change-ontap-sc(可以是任意名称) 键:change-ontap-sc-config.yaml: 值:
version: v1 resourceModifierRules: - conditions: groupResource: persistentvolumeclaims resourceNameRegex: "data-postgresql*" namespaces: - postgresql patches: - operation: replace path: "/spec/storageClassName" value: "ontap-nas-eco"
生成的配置映射对象应如下所示(CLI):
此配置图将在创建恢复时应用资源修改规则。将应用补丁程序将以 rhel 开头的所有持久卷声明的存储类名称替换为 ontap-nas-eco。
步骤 2
要恢复虚拟机,请使用 Velero CLI 中的以下命令:
#velero restore create restore1 --from-backup backup1 --resource-modifier-configmap change-storage-class-config -n openshift-adp
该应用程序在使用存储类 ontap-nas-eco 创建的持久卷声明的同一命名空间中恢复。