k8s所有的NS删除的时候都进入Terminating状态
集群无法删除Namespace解决方式。
Namespace 无法删除 始终处于Teminating
强制删除的方法,临时方案。
将名称空间的配置文件导出。
kubectl get namespace testtest -o json > tmp.json
编辑这个临时文件。
vim tmp.json
删除spec字段中的值。
"spec" : { "finalizers" : [ # delete this line. "kubernetes" # delete this line. ] # delete this line. } ```
使用另一个terminal, 运行本地的proxy, 连接到API server。
kubectl proxy --port=8888
通过ApiServer进行删除
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/[NEEDTODELETENS]/finalize;
这里面http的调用路径在 : tmp.json的 api 字段中。
运行结果返回NameSpace的相关信息应该就是删除了。
Namespace删除卡住的原因
Solution From Github: https://github.com/kubernetes/kubernetes/issues/60807
是某些服务的问题导致了无法删除掉相关的NS
- kubectl get apiservice | grep False
- kubectl api-resources –verbs=list –namespaced -o name | xargs -n 1 kubectl get -n [NEEDTODELETENS]
- kubectl delete apiservice v1alpha3.kubevirt.io
其实是这个apiservice影响的,他的状态不正常导致的NS删除的时候卡住,删除这个apiservice就可以了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Liarlee's Notebook!