准备使用 OADP 实用程序恢复 Cloud Pak for Data
在使用 Cloud Pak for Data OADP 备份和还原实用程序还原 Cloud Pak for Data 实例(租户)之前,必须删除 Cloud Pak for Data 实例项目(命名空间)。
关于本任务
Cloud Pak for Data 实例中的资源由在其他项目中运行的操作员和控制器进行监视和管理。 为了防止在删除 Cloud Pak for Data 实例时损坏或不同步操作程序和资源,必须找到在元数据中指定了终结器的 Kubernetes 资源,并且必须先删除这些终结器,然后才能删除 Cloud Pak for Data 实例。
过程
- 以实例管理员身份登录到 Red Hat®
OpenShift® Container Platform 。
${OC_LOGIN}请记住:OC_LOGIN是oc login命令的别名。 - 删除非名称空间资源。
- 从处于
Released状态的 Cloud Pak for Data 实例获取 PersistentVolumes (PV) 的列表:oc get pv --no-headers | grep "Released.*${PROJECT_CPD_INST_OPERANDS}/.*" | awk '{print $1}' - 删除这些 PV:
oc get pv --no-headers | grep "Released.*${PROJECT_CPD_INST_OPERANDS}/.*" | awk '{print $1}' | xargs oc delete pv - 删除过时的安全上下文约束(SCC):
oc get scc | grep ${PROJECT_CPD_INST_OPERANDS} | awk '{print $1}' | xargs oc delete scc
- 从处于
- 找到并除去可能阻止删除 Cloud Pak for Data 实例操作数项目的终止程序,然后删除操作数项目:
oc project ${PROJECT_CPD_INST_OPERANDS}while read -r resource_type do echo "${resource_type}" while read -r resource do if [ -z "${resource}" ]; then continue fi kubectl delete "${resource}" -n "${PROJECT_CPD_INST_OPERANDS}" --timeout=10s \ || kubectl patch "${resource}" -n "${PROJECT_CPD_INST_OPERANDS}" \ --type=merge \ --patch '{"metadata":{"finalizers":[]}}' done <<< "$(kubectl get "${resource_type}" -n "${PROJECT_CPD_INST_OPERANDS}" -o name | sort)" done <<< "$(kubectl api-resources --namespaced=true -o name | grep ibm.com | sort)"oc delete project ${PROJECT_CPD_INST_OPERANDS} - 除去所有终结器时,请检查是否已删除 Cloud Pak for Data 实例操作数项目:
oc get project ${PROJECT_CPD_INST_OPERANDS} -o yaml如果删除了该项目,那么该命令将返回以下消息:Error from server (NotFound): namespaces "${PROJECT_CPD_INST_OPERANDS}" not found - 如果某些服务已安装在系留项目中,请对每个系留项目重复步骤 1 和 2。
在这些命令中,将 PROJECT_CPD_INST_OPERANDS 环境变量替换为 PROJECT_CPD_INSTANCE_TETHERED。
提示: 如果设置PROJECT_CPD_INSTANCE_TETHERED_LIST环境变量,请将绑定项目列表打印到终端:echo $PROJECT_CPD_INSTANCE_TETHERED_LIST在重新运行命令之前,请使用此信息来设置
PROJECT_CPD_INSTANCE_TETHERED环境变量。 - 删除 Cloud Pak for Data 实例操作程序项目:
oc project ${PROJECT_CPD_INST_OPERATORS}while read -r resource_type do echo "${resource_type}" while read -r resource do if [ -z "${resource}" ]; then continue fi kubectl delete "${resource}" -n "${PROJECT_CPD_INST_OPERATORS}" --timeout=10s \ || kubectl patch "${resource}" -n "${PROJECT_CPD_INST_OPERATORS}" \ --type=merge \ --patch '{"metadata":{"finalizers":[]}}' done <<< "$(kubectl get "${resource_type}" -n "${PROJECT_CPD_INST_OPERATORS}" -o name | sort)" done <<< "$(kubectl api-resources --namespaced=true -o name | grep ibm.com | sort)"oc delete project ${PROJECT_CPD_INST_OPERATORS} - 如果已安装 Cloud Pak for Data scheduling service ,请 将其卸载。
- 删除 Cloud Pak for Data 实例的webhook配置。注意 :仅当删除 Cloud Pak for Data 实例操作员项目的上一步操作完成后,才能执行此步骤。
oc get validatingwebhookconfiguration ibm-common-service-validating-webhook-${PROJECT_CPD_INST_OPERATORS} oc delete validatingwebhookconfiguration ibm-common-service-validating-webhook-${PROJECT_CPD_INST_OPERATORS} - 删除过时的网络链接:
oc get validatingwebhookconfigurations -l olm.owner.namespace=${PROJECT_CPD_INST_OPERATORS} oc delete validatingwebhookconfigurations -l olm.owner.namespace=${PROJECT_CPD_INST_OPERATORS}