k8s中删除处于Terminating状态的namespace
根本没用的方法
假设 “dev” 名称空间正处于Terminating, 此时是无法删除的。就算你使用强制的方法(kubectl delete ns dev--force --grace-period=0) 也是一样的。
正确方法是:
有机会能删的方法
systemctl restart kubelet
kubectl get ns
一定能删的方法
kubectl get ns dev -o json > /tmp/dev.json
vim /tmp/dev.json #删除掉 "spec" 下的内容,即spec的{}为空
另开一个终端:在后台运行“ kubectl proxy ” ,注意不要关掉。
在原终端执行:
cd /tmp
curl -k -H "Content-Type: application/json" -X PUT --data-binary @dev.json http://127.0.0.1:8001/api/v1/namespaces/dev/finalize
输出以下代表成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | { "kind" : "Namespace" , "apiVersion" : "v1" , "metadata" : { "name" : "dev" , "selfLink" : "/api/v1/namespaces/dev/finalize" , "uid" : "bb180481-cf36-4140-86b8-cf802a730763" , "resourceVersion" : "496797" , "creationTimestamp" : "2022-02-15T07:04:09Z" , "deletionTimestamp" : "2022-02-16T05:45:20Z" , "annotations" : { "kubectl.kubernetes.io/last-applied-configuration" : "{\"apiVersion\":\"v1\onTimestamp\":\"2022-02-15T07:04:09Z\",\"deletionTimestamp\":\"2022-02-16T05:45::\"/api/v1/namespaces/dev\",\"uid\":\"bb180481-cf36-4140-86b8-cf802a730763\"},\"ctive\"}}\n" } }, "spec" : { }, "status" : { "phase" : "Terminating" } } |
参与自:https://segmentfault.com/a/1190000037572421
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具