本文主要是介绍Kubernetes 无法删除状态为Terminating的Namespace解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在使用Kubernetes的时候,执行删除namespace命令后挂着不动,要删除namspace一直处于Terminating状态该怎么处理。出现问题的时候我的名称空间是istio-system,下面我就把我解决问题的具体做法介绍一下:
首先使用命令行方式删除,执行如下命令:
$ kubectl delete ns istio-system
过了一会,通过命令kubectl get ns查看,名称空间eckal还处于Terminating状态,以为是删除慢,多等待了一会,但还是这个状态。
我使用如下指令,查看了一下资源,发现名称空间eckal下已没有资源了。
$ kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n istio-system
使用ctrl+c退出命令,然后在指令后添加强制删除参数,问题依然存在。
$ kubectl delete ns istio-system --grace-period=0 --force
注:这里也可以尝试在后面添加参数--ignore-not-found
接下来使用原生接口删除,竟然成功了,首先获取namespace描述,把spec的内容清空, 删除finalizers属性
$ kubectl get namespace istio-system -o json > tmp.json
启动一个API代理在本地的8088端口,注意端口不要有冲突
$ kubectl proxy --port=8088
执行删除动作
$ curl -k -H "Content-Type:application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8088/api/v1/namespaces/istio-system/finalize
这篇关于Kubernetes 无法删除状态为Terminating的Namespace解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!