namespace长时间处于termnating的解决方法之API接口删除法

namespace长时间处于termnating的解决方法之API接口删除法

Deng YongJie's blog 948 2023-01-07

命名空间长时间处于termnating的解决方法,通过api接口删除

1.把命名空间的描述导出为json文件

kubectl get ns monitoring.json -o json > monitoring.json

2.把spec下面的finalizers删掉

vim kubernetes-dashboard.json

找到下图这两行:

在这里插入图片描述

删掉之后:
image-20221009181938052

3.另外打开一个shell窗口,跑一个proxy代理

#注意回显出来的api接口提示,需要根据该路径执行删除命令

kubectl proxy --port=8081

下图显示:
image-20221009182122201

4.使用curl删除命名空间,注意上图给出的接口路径

curl -k -H “Content-Type:application/json” -X PUT --data-binary @monitoring.json http://127.0.0.1:8081/k8s/clusters/c-cdztj/api/v1/namespaces/monitoring/finalize

@这里写成json文件名字,接口路径格式:namespaces/命名空间/finalize

5.有回显输出代表删除成功

kubectl get ns monitoring

命名空间删除完成

终极方案:

如果接口都无法删除,那就直接删掉etcd的数据,注意搜索过滤出关键字,删错就完犊子了