4.5. OADP 用例
以下是使用 OADP 和 ODF 备份应用程序的用例。
4.5.1.1. 使用 OADP 和 ODF 备份应用程序 复制链接链接已复制到粘贴板!
在这种情况下,您可以使用 OADP 备份应用程序,并将备份存储在 Red Hat OpenShift Data Foundation (ODF) 提供的对象存储中。
- 您可以创建一个对象存储桶声明(OBC)来配置备份存储位置。您可以使用 ODF 配置 Amazon S3 兼容对象存储桶。ODF 提供 MultiCloud Object Gateway (NooBaa MCG) 和 Ceph 对象网关,也称为 RADOS 网关(RGW)、对象存储服务。在这种情况下,您可以使用 NooBaa MCG 作为备份存储位置。
-
您可以使用
aws供应商插件在 OADP 中使用 NooBaa MCG 服务。 - 您可以使用备份存储位置(BSL)配置数据保护应用程序(DPA)。
- 您可以创建备份自定义资源(CR)并指定要备份的应用程序命名空间。
- 您可以创建并验证备份。
先决条件
- 已安装 OADP Operator。
- 已安装 ODF Operator。
- 您有一个应用程序,其数据库在单独的命名空间中运行。
流程
创建一个 OBC 清单文件来请求 NooBaa MCG 存储桶,如下例所示:
OBC 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 OBC:
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定对象存储桶声明清单的文件名。
当您创建 OBC 时,ODF 会创建一个
secret和一个配置映射,其名称与对象存储桶声明相同。secret具有存储桶凭证,配置映射有访问存储桶的信息。要从生成的配置映射中获取存储桶名称和存储桶主机,请运行以下命令:oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
test-obc是 OBC 的名称。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要从生成的
secret获取存储桶凭证,请运行以下命令:oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPymCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从
openshift-storage命名空间中的 s3 路由获取 S3 端点的公共 URL:oc get route s3 -n openshift-storage
$ oc get route s3 -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用对象存储桶凭证创建一个
cloud-credentials文件,如下所示:[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
cloud-credentials文件内容创建cloud-credentialssecret,如下所示:oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentialsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 Data Protection Application (DPA),如下例所示:
DPA 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 DPA:
oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 DPA 是否已成功创建。在示例输出中,您可以看到
status对象将type字段设置为Reconciled。这意味着 DPA 已被成功创建。oc get dpa -o yaml
$ oc get dpa -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证备份存储位置(BSL)是否可用:
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置备份 CR,如下例所示:
备份 CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要备份的应用程序的命名空间。
运行以下命令来创建备份 CR:
oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证备份对象是否处于
Completed阶段。如需了解更多详细信息,请参阅示例输出。oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.2. OpenShift API for Data Protection (OADP) 恢复用例 复制链接链接已复制到粘贴板!
以下是使用 OADP 的用例将备份恢复到不同的命名空间。
4.5.2.1. 使用 OADP 将应用程序恢复到不同的命名空间 复制链接链接已复制到粘贴板!
使用 OADP 将应用程序的备份恢复到新目标命名空间 test-restore-application。要恢复备份,请创建一个恢复自定义资源 (CR),如下例所示。在恢复 CR 中,源命名空间指的是您在备份中包含的应用程序命名空间。然后,您可以通过将项目更改为新的恢复的命名空间并验证资源来验证恢复。
先决条件
- 已安装 OADP Operator。
- 您已备份要恢复的应用程序。
流程
创建一个恢复 CR,如下例所示:
恢复 CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用恢复 CR:
oc apply -f <restore_cr_filename>
$ oc apply -f <restore_cr_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证恢复是否处于
Completed阶段:oc describe restores.velero.io <restore_name> -n openshift-adp
$ oc describe restores.velero.io <restore_name> -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,进入恢复的命名空间
test-restore-application:oc project test-restore-application
$ oc project test-restore-applicationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证恢复的资源,如持久性卷声明(pvc)、服务(svc)、部署、secret 和配置映射:
oc get pvc,svc,deployment,secret,configmap
$ oc get pvc,svc,deployment,secret,configmapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.3. 在备份过程中包括自签名 CA 证书 复制链接链接已复制到粘贴板!
您可以在数据保护应用程序(DPA)中包括自签名证书颁发机构(CA)证书,然后备份应用程序。您可以将备份存储在 Red Hat OpenShift Data Foundation (ODF) 提供的 NooBaa 存储桶中。
4.5.3.1. 备份应用程序及其自签名 CA 证书 复制链接链接已复制到粘贴板!
ODF 提供的 s3.openshift-storage.svc 服务使用使用自签名服务 CA 签名的传输层安全协议 (TLS) 证书。
要防止 由未知颁发机构签名的证书,您必须在 DataProtectionApplication 自定义资源(CR)的备份存储位置(BSL)部分包含自签名 CA 证书。在这种情况下,您必须完成以下任务:
- 通过创建对象存储桶声明(OBC)来请求 NooBaa 存储桶。
- 提取存储桶详情。
-
在
DataProtectionApplicationCR 中包含自签名 CA 证书。 - 备份应用程序。
先决条件
- 已安装 OADP Operator。
- 已安装 ODF Operator。
- 您有一个应用程序,其数据库在单独的命名空间中运行。
流程
创建 OBC 清单以请求 NooBaa 存储桶,如下例所示:
ObjectBucketClaimCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 OBC:
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当您创建 OBC 时,ODF 会创建一个
secret和一个配置映射,其名称与对象存储桶声明相同。secret对象包含存储桶凭证,ConfigMap对象包含用于访问存储桶的信息。要从生成的配置映射中获取存储桶名称和存储桶主机,请运行以下命令:oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- OBC 的名称为
test-obc。
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要从
secret对象获取存储桶凭证,请运行以下命令:oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPymCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下示例配置创建带有对象存储桶凭证的
cloud-credentials文件:[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建带有
cloud-credentials文件内容的cloud-credentialssecret:oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentialsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从
openshift-service-ca.crt配置映射中提取服务 CA 证书。确保您以Base64格式编码证书,并记录下一步中使用的值。oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo$ oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0KCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用存储桶名称和 CA 证书配置
DataProtectionApplicationCR 清单文件,如下例所示:DataProtectionApplicationCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
DataProtectionApplicationCR:oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证
DataProtectionApplicationCR 是否已成功创建:oc get dpa -o yaml
$ oc get dpa -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证备份存储位置(BSL)是否可用:
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下示例配置
BackupCR:BackupCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要备份的应用程序的命名空间。
运行以下命令来创建
BackupCR:oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证
Backup对象是否处于Completed阶段:oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.4. 使用 legacy-aws Velero 插件 复制链接链接已复制到粘贴板!
如果您使用一个 AWS S3 兼容备份存储位置,在备份应用程序时可能会出现 SignatureDoesNotMatch 错误。发生此错误的原因是,一些备份存储位置仍然使用旧版本的 S3 API,这与 Go V2 的较新的 AWS SDK 不兼容。要解决这个问题,您可以在 DataProtectionApplication 自定义资源(CR)中使用 legacy-aws Velero 插件。legacy-aws Velero 插件使用旧的 AWS SDK 用于 Go V1,它与旧的 S3 API 兼容,确保备份成功。
在以下用例中,您可以使用 legacy-aws Velero 插件配置 DataProtectionApplication CR,然后备份应用程序。
根据您选择的备份存储位置,您可以在 DataProtectionApplication CR 中使用 legacy-aws 或 aws 插件。如果您在 DataProtectionApplication CR 中同时使用了这两个插件,则会出现以下错误:aws and legacy-aws can not be both specified in DPA spec.configuration.velero.defaultPlugins。
先决条件
- 已安装 OADP Operator。
- 您已将一个 AWS S3 兼容对象存储配置为备份位置。
- 您有一个应用程序,其数据库在单独的命名空间中运行。
流程
将
DataProtectionApplicationCR 配置为使用legacy-awsVelero 插件,如下例所示:DataProtectionApplicationCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
DataProtectionApplicationCR:oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
DataProtectionApplicationCR 是否已成功创建。在示例输出中,您可以看到status对象将type字段设置为Reconciled,status字段设置为"True"。该状态表示DataProtectionApplicationCR 已被成功创建。oc get dpa -o yaml
$ oc get dpa -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证备份存储位置(BSL)是否可用:
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
BackupCR,如下例所示:备份 CR 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要备份的应用程序的命名空间。
运行以下命令来创建
BackupCR:oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证备份对象是否处于
Completed阶段。如需了解更多详细信息,请参阅示例输出。oc describe backups.velero.io test-backup -n openshift-adp
$ oc describe backups.velero.io test-backup -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow