$ oc create namespace hello-world
以下示例hello-world
应用程序未附加任何持久卷 (PV)。使用 AWS 上的 Red Hat OpenShift Service (ROSA) STS 和 OpenShift 数据保护 API (OADP) 执行备份。
任一数据保护应用程序 (DPA) 配置均可。
运行以下命令创建要备份的工作负载
$ oc create namespace hello-world
$ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
运行以下命令公开路由
$ oc expose service/hello-openshift -n hello-world
运行以下命令检查应用程序是否正常运行
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
Hello OpenShift!
运行以下命令备份工作负载
$ 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
等待备份完成,然后运行以下命令
$ watch "oc -n openshift-adp get backup hello-world -o json | jq .status"
{
"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
}
运行以下命令删除演示工作负载
$ oc delete ns hello-world
运行以下命令从备份中恢复工作负载
$ cat << EOF | oc create -f -
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF
运行以下命令等待恢复完成
$ watch "oc -n openshift-adp get restore hello-world -o json | jq .status"
{
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}
运行以下命令检查工作负载是否已恢复
$ oc -n hello-world get pods
NAME READY STATUS RESTARTS AGE
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
运行以下命令检查 JSONPath
$ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`
Hello OpenShift!
有关故障排除提示,请参阅 OADP 团队的故障排除文档。 |
如果您需要卸载 OpenShift 数据保护 API (OADP) 运算符以及备份和此示例中的 S3 存储桶,请按照以下说明操作。
运行以下命令删除工作负载
$ oc delete ns hello-world
运行以下命令删除数据保护应用程序 (DPA)
$ oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpa
运行以下命令删除云存储
$ oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadp
如果此命令挂起,您可能需要运行以下命令删除最终确定器
|
如果不再需要运算符,请运行以下命令将其删除
$ oc -n openshift-adp delete subscription oadp-operator
从运算符中删除命名空间
$ oc delete ns openshift-adp
如果不再需要备份和恢复资源,请运行以下命令将其从集群中删除
$ oc delete backups.velero.io hello-world
要删除 AWS S3 中的备份、恢复和远程对象,请运行以下命令
$ velero backup delete hello-world
如果您不再需要自定义资源定义 (CRD),请运行以下命令将其从集群中删除
$ for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; done
运行以下命令删除 AWS S3 存储桶
$ aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive
$ aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadp
运行以下命令将策略与角色分离
$ aws iam detach-role-policy --role-name "${ROLE_NAME}" --policy-arn "${POLICY_ARN}"
运行以下命令删除角色
$ aws iam delete-role --role-name "${ROLE_NAME}"