第 10 章 卸载过程中的故障排除和删除剩余的资源
有时,由 Operator 管理的一些自定义资源可能会处于 "Terminating" 状态,等待终结器完成,尽管您执行了所有必要的清理任务。在这种情况下,您需要强制删除这些资源。如果没有这样做,即使执行了所有卸载步骤,资源也会处于 Terminating
状态。
检查 openshift-storage 命名空间在删除时是否处于
Terminating
状态。oc get project -n <namespace>
$ oc get project -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
NAME DISPLAY NAME STATUS openshift-storage Terminating
NAME DISPLAY NAME STATUS openshift-storage Terminating
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查命令输出的
STATUS
部分中的NamespaceFinalizersRemaining
和NamespaceContentRemaining
信息,并为列出的每个资源执行下一步。oc get project openshift-storage -o yaml
$ oc get project openshift-storage -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除上一步中列出的所有剩余资源。
对于要删除的每个资源,请执行以下操作:
获取需要删除的资源的对象类型。查看以上输出中的消息。
示例:
message: some content in the namespace has finalizers remaining: cephobjectstoreuser.ceph.rook.io
此处 cephobjectstoreuser.ceph.rook.io 是对象类型。
获取与对象类型对应的对象名称。
oc get <Object-kind> -n <project-name>
$ oc get <Object-kind> -n <project-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:
oc get cephobjectstoreusers.ceph.rook.io -n openshift-storage
$ oc get cephobjectstoreusers.ceph.rook.io -n openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
NAME AGE noobaa-ceph-objectstore-user 26h
NAME AGE noobaa-ceph-objectstore-user 26h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修补资源。
oc patch -n <project-name> <object-kind>/<object-name> --type=merge -p '{"metadata": {"finalizers":null}}'
$ oc patch -n <project-name> <object-kind>/<object-name> --type=merge -p '{"metadata": {"finalizers":null}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例:
oc patch -n openshift-storage cephobjectstoreusers.ceph.rook.io/noobaa-ceph-objectstore-user \ --type=merge -p '{"metadata": {"finalizers":null}}'
$ oc patch -n openshift-storage cephobjectstoreusers.ceph.rook.io/noobaa-ceph-objectstore-user \ --type=merge -p '{"metadata": {"finalizers":null}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user patched
cephobjectstoreuser.ceph.rook.io/noobaa-ceph-objectstore-user patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证 openshift-storage 项目是否已删除。
oc get project openshift-storage
$ oc get project openshift-storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
Error from server (NotFound): namespaces "openshift-storage" not found
Error from server (NotFound): namespaces "openshift-storage" not found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果问题仍然存在,请联系红帽支持团队。