3.4. 卸载 OpenShift Data Foundation
3.4.1. 从外部存储系统卸载 OpenShift Data Foundation 复制链接链接已复制到粘贴板!
使用本节中的步骤卸载 OpenShift Data Foundation。卸载 OpenShift Data Foundation 不会从外部集群中删除 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 不会清理物理驱动器和 |
模式 | graceful | 是 | Rook 和 NooBaa 暂停卸载过程,直到管理员/用户移除 PVC 和 OBC |
模式 | forced | 否 | rook 和 NooBaa 会在卸载过程中继续进行,即使 PVC/OBCs 使用 Rook 和 NooBaa 置备 |
您可以通过使用以下命令编辑注解值来更改卸载模式:
oc annotate storagecluster ocs-external-storagecluster -n openshift-storage uninstall.ocs.openshift.io/mode="forced" --overwrite
$ oc annotate storagecluster ocs-external-storagecluster -n openshift-storage uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated
先决条件
- 确保 OpenShift Data Foundation 集群处于健康状态。当因为资源或节点不足而导致部分 pod 无法成功终止时,卸载过程可能会失败。如果集群处于不健康状态,请在卸载 OpenShift Data Foundation 前联系红帽客户支持。
- 使用 OpenShift Data Foundation 提供的存储类,确保应用程序不使用持久性卷声明 (PVC) 或对象存储桶声明 (OBC)。
流程
删除使用 OpenShift Data Foundation 的卷快照。
列出所有命名空间中的卷快照
oc get volumesnapshot --all-namespaces
$ oc get volumesnapshot --all-namespaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从上一命令的输出中,识别和删除使用 OpenShift Data Foundation 的卷快照。
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 Data Foundation 的 PVC 和 OBC。
在默认的卸载模式 (graceful) 中,卸载程序会等待所有使用 OpenShift Data Foundation 的 PVC 和 OBC 被删除。
如果要事先删除 PVC 来删除存储集群,您可以将卸载模式注解设置为"强制"并跳过此步骤。这样做会导致系统中出现孤立 PVC 和 OBC。
使用 OpenShift Data Foundation 删除 OpenShift Container Platform 监控堆栈 PVC。
使用 OpenShift Data Foundation 删除 OpenShift Container Platform Registry PVC。
从 OpenShift Data Foundation 中删除 OpenShift Container Platform registry
使用 OpenShift Data Foundation 删除 OpenShift Container Platform 日志 PVC。
删除使用 OpenShift Data Foundation 置备的其他 PVC 和 OBC。
下面是一个示例脚本,用于标识使用 OpenShift Data Foundation 置备的 PVC 和 OBC。该脚本将忽略 OpenShift Data Foundation 内部使用的 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 storagesystem --all --wait=true
$ oc delete -n openshift-storage storagesystem --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 Data Foundation 时,如果没有完全删除命名空间并处于
Terminating
状态,请执行 故障排除和删除 Uninstall 过程中剩余的资源 的步骤,以识别阻塞命名空间的对象。确认已删除使用 OpenShift Data Foundation 置备的所有 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 删除
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 storagesystems.odf.openshift.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 storagesystems.odf.openshift.io --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保完全卸载 OpenShift Data Foundation:
- 在 OpenShift Container Platform Web 控制台中点 Storage。
- 验证 OpenShift Data Foundation 是否不再出现在 Storage 下。
3.4.2. 从 OpenShift Data Foundation 中删除监控堆栈 复制链接链接已复制到粘贴板!
使用本节清理 OpenShift Data Foundation 的监控堆栈。
在配置监控堆栈时创建的 PVC 位于 openshift-monitoring
命名空间中。
先决条件
PVC 被配置为使用 OpenShift Container Platform 监控堆栈。
如需更多信息,请参阅 配置监控堆栈。
流程
列出当前在
openshift-monitoring
命名空间中运行的 pod 和 PVC。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑监控
configmap
。oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除引用 OpenShift Data Foundation 存储类的所有
config
部分,如下例所示并保存。Expand Before editing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow After editing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,
alertmanagerMain
和prometheusK8s
监控组件使用 OpenShift Data Foundation PVC。列出使用 PVC 的 pod。
在本例中,消耗 PVC 的
alertmanagerMain
和prometheusK8s
pod 处于Terminating
状态。这些 pod 不再使用 OpenShift Data Foundation PVC后,您可以删除 PVC。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除相关的 PVC。请确定删除所有消耗存储类的 PVC。
oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
$ oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用这个部分从 OpenShift Data Foundation 清理 OpenShift Container Platform registry。如果要配置其他存储,请参阅 镜像 registry
作为配置 OpenShift Container Platform registry 的一部分创建的 PVC 位于 openshift-image-registry
命名空间中。
先决条件
- 镜像 registry 应配置为使用 OpenShift Data Foundation PVC。
流程
编辑
configs.imageregistry.operator.openshift.io
对象,并删除 storage 部分中的内容。oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 编辑前
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑后
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,PVC 称为
registry-cephfs-rwx-pvc
,现在可以安全地删除。删除 PVC。
oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m
$ oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.4. 从 OpenShift Data Foundation 中删除集群日志记录操作器 复制链接链接已复制到粘贴板!
使用本节从 OpenShift Data Foundation 清理集群日志记录 Operator。
在配置集群日志记录 Operator 时创建的 PVC 位于 openshift-logging
命名空间中。
先决条件
- 集群日志记录实例应该已配置为使用 OpenShift Data Foundation PVC。
流程
删除命名空间中的
ClusterLogging
实例。oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m
$ oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow openshift-logging
命名空间中的 PVC 现在可以安全地删除。删除 PVC。
oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m
$ oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <pvc-name>
- 是 PVC 的名称