OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
3.4. 以外部模式卸载 OpenShift Container Storage
3.4.1. 以外部模式卸载 OpenShift Container Storage 复制链接链接已复制到粘贴板!
使用本节中的步骤卸载 OpenShift Container Storage。卸载 OpenShift Container Storage 不会从外部集群中删除 RBD 池,或卸载外部 Red Hat Ceph Storage 集群。
卸载注解
Storage Cluster 上的注解用于更改卸载过程的行为。要定义卸载行为,在存储集群中引入了以下两个注解:
-
uninstall.ocs.openshift.io/cleanup-policy: delete
-
uninstall.ocs.openshift.io/mode: graceful
uninstall.ocs.openshift.io/cleanup-policy
不适用于外部模式。
下表提供了有关可用于这些注解的不同值的信息:
注解 | 值 | 默认 | 行为 |
---|---|---|---|
cleanup-policy | delete | 是 |
Rook 清理物理驱动器和 |
cleanup-policy | retain | 否 |
Rook 不会清理物理驱动器和 |
mode | graceful | 是 | Rook 和 NooBaa 暂停卸载过程,直到管理员/用户移除 PVC 和 OBC |
mode | forced | 否 | rook 和 NooBaa 会在卸载过程中继续进行,即使 PVC/OBCs 使用 Rook 和 NooBaa 置备 |
您可以通过使用以下命令编辑注解值来更改卸载模式:
oc annotate storagecluster ocs-external-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite
$ oc annotate storagecluster ocs-external-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated
先决条件
- 确保 OpenShift Container Storage 集群处于健康状态。当因为资源或节点不足而导致部分 pod 无法成功终止时,卸载过程可能会失败。如果集群处于不健康状态,请在卸载 OpenShift Container Storage 前联络红帽客户支持。
- 使用 OpenShift Container Storage 提供的存储类,确保应用程序不使用持久性卷声明 (PVC) 或对象存储桶声明 (OBC)。
流程
删除使用 OpenShift Container Storage 的卷快照。
列出所有命名空间中的卷快照
oc get volumesnapshot --all-namespaces
$ oc get volumesnapshot --all-namespaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上一命令的输出中,识别和删除使用 OpenShift Container Storage 的卷快照。
oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
$ oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
删除使用 OpenShift Container Storage 的 PVC 和 OBC。
在默认的卸载模式 (graceful) 中,卸载程序会等待所有使用 OpenShift Container Storage 的 PVC 和 OBC 被删除。
如果要事先删除 PVC 来删除存储集群,您可以将卸载模式注解设置为"强制"并跳过此步骤。这样做会导致系统中出现孤立 PVC 和 OBC。
使用 OpenShift Container Storage 删除 OpenShift Container Platform 监控堆栈 PVC。
使用 OpenShift Container Storage 删除 OpenShift Container Platform Registry PVC。
从 OpenShift Container Storage 中删除 OpenShift Container Platform registry
使用 OpenShift Container Storage 删除 OpenShift Container Platform 日志 PVC。
删除使用 OpenShift Container Storage 置备的其他 PVC 和 OBC。
下面是一个示例脚本,用于标识使用 OpenShift Container Storage 置备的 PVC 和 OBC。该脚本忽略 Openshift Container Storage 内部使用的 PVC 和 OBC。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 OBC。
oc delete obc <obc name> -n <project name>
$ oc delete obc <obc name> -n <project name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 PVC。
oc delete pvc <pvc name> -n <project-name>
$ oc delete pvc <pvc name> -n <project-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保您已删除了集群中创建的任何自定义后备存储、存储桶类等。
删除 Storage Cluster 对象并等待相关资源被删除。
oc delete -n openshift-storage storagecluster --all --wait=true
$ oc delete -n openshift-storage storagecluster --all --wait=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除命名空间并等待删除完成。如果
openshift-storage
是活跃的项目,则需要切换到另一个项目。例如:
oc project default oc delete project openshift-storage --wait=true --timeout=5m
$ oc project default $ oc delete project openshift-storage --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果以下命令返回
NotFound
错误,则项目被删除。oc get project openshift-storage
$ oc get project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意卸载 OpenShift Container Storage 时,如果没有完全删除命名空间并处于
Terminating
状态,请执行 故障排除和删除 Uninstall 过程中剩余的资源 的步骤,以识别阻塞命名空间的对象。确认已删除使用 OpenShift Container Storage 置备的所有 PV。如果有任何 PV 处于
Released
状态,请将其删除。oc get pv oc delete pv <pv name>
$ oc get pv $ oc delete pv <pv name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除 Multicloud 对象网关存储类。
oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5m
$ oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除
CustomResourceDefinitions
。oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5m
$ oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift Container Platform Web 控制台中,确保完全卸载 OpenShift Container Storage,
- 点 Storage。
- 验证 Overview 不再显示在 Storage 下。