无法删除Service Mesh的Control Plane

由于删除OpenShift Service Mesh时出现了无法删除控制平面的问题,因此记录下来。

事件

当我尝试使用 oc delete 命令删除 Control Plane 时,它一直处于删除状态,导致无法删除 istio-system。

$ oc get smcp -n istio-system
NAME    READY   STATUS     PROFILES      VERSION   AGE
basic   9/9     Deleting   ["default"]   2.4.2     36d

操作符的卸载已经完成,但istio-system和Control Plane仍然保留在那里。即使使用oc delete –force命令也无法改变情况。

处理

在Kubernetes中,指定了finalizers用于在删除资源之前执行的处理程序。如果未完成此处理程序,资源将保留下来,因此需要将其禁用。

指令如下。

$ oc patch -n istio-system smcp/basic --type=merge -p '{"metadata": {"finalizers":null}}'
servicemeshcontrolplane.maistra.io/basic patched
$ oc get smcp -n istio-system
Error from server (NotFound): Unable to list "maistra.io/v2, Resource=servicemeshcontrolplanes": the server could not find the requested resource (get servicemeshcontrolplanes.maistra.io)

顺便提一句,可以按以下方式删除Namespace。

$ oc get namespace istio-system -o json | sed -e 's/"kubernetes"//' | kubectl replace --raw "/api/v1/namespaces/istio-system/finalize" -f -

然而,如果不能删除类似于上述的资源,则删除命名空间后可能仍会保留资源。在本次执行的操作中,控制平面仍处于删除状态。

请参考

    • https://github.com/kubernetes/kubernetes/issues/60807

 

    https://access.redhat.com/documentation/ja-jp/red_hat_openshift_container_storage/4.5/html/troubleshooting_openshift_container_storage/troubleshooting-and-deleting-remaining-resources-during-uninstall_rhocs
广告
将在 10 秒后关闭
bannerAds