1.3. 使用 ROSA STS 在 OADP 上备份工作负载


1.3.1. 使用 OADP 和 ROSA STS 执行备份

以下示例 hello-world 应用没有附加持久性卷 (PV)。使用 OpenShift API 对 Red Hat OpenShift Service on AWS (ROSA) STS 进行数据保护 (OADP) 进行备份。

数据保护应用程序 (DPA) 配置都将正常工作。

  1. 运行以下命令,创建一个工作负载来备份:

    $ oc create namespace hello-world
    Copy to Clipboard Toggle word wrap
    $ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来公开路由:

    $ oc expose service/hello-openshift -n hello-world
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令检查应用程序是否正常工作:

    $ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
    Copy to Clipboard Toggle word wrap

    输出示例

    Hello OpenShift!
    Copy to Clipboard Toggle word wrap

  4. 运行以下命令来备份工作负载:

    $ cat << EOF | oc create -f -
      apiVersion: velero.io/v1
      kind: Backup
      metadata:
        name: hello-world
        namespace: openshift-adp
      spec:
        includedNamespaces:
        - hello-world
        storageLocation: ${CLUSTER_NAME}-dpa-1
        ttl: 720h0m0s
    EOF
    Copy to Clipboard Toggle word wrap
  5. 等待备份完成,然后运行以下命令:

    $ watch "oc -n openshift-adp get backup hello-world -o json | jq .status"
    Copy to Clipboard Toggle word wrap

    输出示例

    {
      "completionTimestamp": "2022-09-07T22:20:44Z",
      "expiration": "2022-10-07T22:20:22Z",
      "formatVersion": "1.1.0",
      "phase": "Completed",
      "progress": {
        "itemsBackedUp": 58,
        "totalItems": 58
      },
      "startTimestamp": "2022-09-07T22:20:22Z",
      "version": 1
    }
    Copy to Clipboard Toggle word wrap

  6. 运行以下命令来删除 demo 工作负载:

    $ oc delete ns hello-world
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令,从备份中恢复工作负载:

    $ cat << EOF | oc create -f -
      apiVersion: velero.io/v1
      kind: Restore
      metadata:
        name: hello-world
        namespace: openshift-adp
      spec:
        backupName: hello-world
    EOF
    Copy to Clipboard Toggle word wrap
  8. 运行以下命令等待 Restore 完成:

    $ watch "oc -n openshift-adp get restore hello-world -o json | jq .status"
    Copy to Clipboard Toggle word wrap

    输出示例

    {
      "completionTimestamp": "2022-09-07T22:25:47Z",
      "phase": "Completed",
      "progress": {
        "itemsRestored": 38,
        "totalItems": 38
      },
      "startTimestamp": "2022-09-07T22:25:28Z",
      "warnings": 9
    }
    Copy to Clipboard Toggle word wrap

  9. 运行以下命令检查工作负载是否已恢复:

    $ oc -n hello-world get pods
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                              READY   STATUS    RESTARTS   AGE
    hello-openshift-9f885f7c6-kdjpj   1/1     Running   0          90s
    Copy to Clipboard Toggle word wrap

  10. 运行以下命令来检查 JSONPath:

    $ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
    Copy to Clipboard Toggle word wrap

    输出示例

    Hello OpenShift!
    Copy to Clipboard Toggle word wrap

注意

有关故障排除提示的信息,请参阅 OADP 团队的 故障排除文档

1.3.2. 使用 OADP 和 ROSA STS 的备份后清理集群

如果您需要卸载 OpenShift API for Data Protection (OADP) Operator 以及本例中的备份和 S3 存储桶,请按照以下步骤操作。

流程

  1. 运行以下命令来删除工作负载:

    $ oc delete ns hello-world
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来删除数据保护应用程序 (DPA):

    $ oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpa
    Copy to Clipboard Toggle word wrap
  3. 运行以下命令来删除云存储:

    $ oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadp
    Copy to Clipboard Toggle word wrap
    警告

    如果这个命令挂起,您可能需要通过运行以下命令来删除终结器:

    $ oc -n openshift-adp patch cloudstorage ${CLUSTER_NAME}-oadp -p '{"metadata":{"finalizers":null}}' --type=merge
    Copy to Clipboard Toggle word wrap
  4. 如果不再需要 Operator,请运行以下命令删除它:

    $ oc -n openshift-adp delete subscription oadp-operator
    Copy to Clipboard Toggle word wrap
  5. 从 Operator 中删除命名空间:

    $ oc delete ns openshift-adp
    Copy to Clipboard Toggle word wrap
  6. 如果不再需要备份和恢复资源,请运行以下命令从集群中删除它们:

    $ oc delete backups.velero.io hello-world
    Copy to Clipboard Toggle word wrap
  7. 要删除 AWS S3 中的备份、恢复和远程对象,请运行以下命令:

    $ velero backup delete hello-world
    Copy to Clipboard Toggle word wrap
  8. 如果您不再需要自定义资源定义 (CRD),请运行以下命令从集群中删除它们:

    $ for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; done
    Copy to Clipboard Toggle word wrap
  9. 运行以下命令来删除 AWS S3 存储桶:

    $ aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive
    Copy to Clipboard Toggle word wrap
    $ aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadp
    Copy to Clipboard Toggle word wrap
  10. 运行以下命令,将策略从角色分离:

    $ aws iam detach-role-policy --role-name "${ROLE_NAME}"  --policy-arn "${POLICY_ARN}"
    Copy to Clipboard Toggle word wrap
  11. 运行以下命令来删除角色:

    $ aws iam delete-role --role-name "${ROLE_NAME}"
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat