This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.7. OADP 恢复
4.7.1. 恢复应用程序 复制链接链接已复制到粘贴板!
您可以通过创建一个 Restore
自定义资源 (CR) 来恢复应用程序备份。请参阅创建 Restore CR。
您可以创建恢复 hook,以便在 pod 中的容器中运行命令,同时通过编辑 Restore
(CR) 恢复应用程序。请参阅创建恢复 hook
4.7.1.1. 创建恢复 CR 复制链接链接已复制到粘贴板!
您可以通过创建一个 Restore
CR 来恢复 Backup
自定义资源(CR)。
先决条件
- 您必须安装用于数据保护(OADP)Operator 的 OpenShift API。
-
DataProtectionApplication
CR 必须处于Ready
状态。 -
您必须具有 Velero
Backup
CR。 - 调整请求的大小,以便持久性卷 (PV) 容量与备份时请求的大小匹配。
流程
创建一个
Restore
CR,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证
Restore
CR 的状态是否为Completed
:oc get restore -n openshift-adp <restore> -o jsonpath='{.status.phase}'
$ oc get restore -n openshift-adp <restore> -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证备份资源是否已恢复:
oc get all -n <namespace>
$ oc get all -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 备份的命名空间。
如果您使用 Restic 恢复
DeploymentConfig
对象,或使用 post-restore hook,请输入以下命令运行dc-restic-post-restore.sh
cleanup 脚本:bash dc-restic-post-restore.sh <restore-name>
$ bash dc-restic-post-restore.sh <restore-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在恢复过程中,OADP Velero 插件会缩减
DeploymentConfig
对象,并将 pod 恢复为独立 pod,以防止集群在恢复时立即删除恢复的DeploymentConfig
pod,并允许 Restic 和 post-restore hook 在恢复的 pod 上完成其操作。清理脚本会删除这些断开连接的 pod,并将任何DeploymentConfig
对象扩展至适当的副本数。例 4.1.
dc-restic-post-restore.sh
cleanup 脚本Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1.2. 创建恢复 hook 复制链接链接已复制到粘贴板!
您可以创建恢复 hook,以便在 pod 中运行的容器运行命令,同时通过编辑 Restore
自定义资源(CR)恢复应用程序。
您可以创建两种类型的恢复 hook:
init
hook 将 init 容器添加到 pod,以便在应用程序容器启动前执行设置任务。如果您恢复 Restic 备份,则会在恢复 hook init 容器前添加
restic-wait
init 容器。-
exec
hook 在恢复的 pod 的容器中运行命令或脚本。
流程
在
Restore
CR 的spec.hooks
块中添加 hook,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 可选: hook 应用的命名空间数组。如果没有指定这个值,则 hook 适用于所有命名空间。
- 2
- 目前,pod 是唯一可以应用 hook 的支持的资源。
- 3
- 可选:此 hook 仅适用于与标签选择器匹配的对象。
- 4
- 可选:超时指定了 Velero 等待
initContainers
完成的最大时间长度。 - 5
- 可选:如果没有指定容器,该命令将在 pod 的第一个容器中运行。
- 6
- 这是正在添加的 init 容器的入口点。
- 7
- 可选:等待容器就绪的时间。这应该足够长,以便容器可以启动,在相同容器中的任何以前的 hook 可以完成。如果没有设置,恢复过程会无限期等待。
- 8
- 可选:等待命令运行的时间。默认值为
30s
。 - 9
- 错误处理的允许值为
Fail
和Continue
:-
Continue
: 只记录命令失败。 -
Fail
: 任何 pod 中的任何容器中没有更多恢复 hook 运行。Restore
CR 的状态将是PartiallyFailed
。
-