命名空间长时间处于termnating的解决方法,通过api接口删除
1.把命名空间的描述导出为json文件
kubectl get ns monitoring.json -o json > monitoring.json
2.把spec下面的finalizers删掉
vim kubernetes-dashboard.json
找到下图这两行:
删掉之后:
3.另外打开一个shell窗口,跑一个proxy代理
#注意回显出来的api接口提示,需要根据该路径执行删除命令
kubectl proxy --port=8081
下图显示:
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的数据,注意搜索过滤出关键字,删错就完犊子了