k8s 强制删除 namespace
- 1、命名空间查看资源
- 2、删除k8s指定命名空间
- 3、强制删除
- 3.1、导出命名空间jsno
- 3.2、使用kubectl代理
- 3.3、代理测试
- 3.4、使用http接口进行删除
1、命名空间查看资源
kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n {namespace}
2、删除k8s指定命名空间
kubectl delete ns 命名空间的名字
# 或者使用
kubectl delete ns 命名空间的名字 --force --grace-period=0
使用以上两种命令均无法成功删除命名空间,只会使命名空间的状态为Terminating状态
3、强制删除
3.1、导出命名空间jsno
kubectl get namespace 命名空间名字 -o json > 命名空间名字.json
执行完这条命令后,当前文件夹会出现 命名空间名字.json这个文件,打开这个文件,删除字段spec和finalizers这两个字段包含的内容。
3.2、使用kubectl代理
kubectl proxy --port=8080
3.3、代理测试
另外一个终端
curl http://localhost:8080/api/
3.4、使用http接口进行删除
curl -k -H "Content-Type: application/json" -X PUT --data-binary @命名空间名字.json http://127.0.0.1:8080/api/v1/namespaces/命名空间的名字/finalize
注意着里面的两个地方,一个是**.json文件一定要是刚才生成的文件;一个就是刚才操作的那个命名空间名字**。
摘自:https://www.cnblogs.com/fengjian2016/p/16557038.html