k8s如何删除处于terminating状态的ns资源

假设你要删掉两个ns资源,发现一直删不了处于terminating状态

首先试一下先把这个ns的所有pod都删掉

kubectl delete pod --all -n dev

还是不行的话,加个参数强制删除

kubectl delete pod --grace-period=0 –force

如果依然是卡死状态,就要使用下面的必杀技了

首先生成一个tmp.json文件

kubectl get namespace <terminating-namespace> -o json >tmp.json

 apiVersion: v1
 kind: Namespace
 metadata:
   creationTimestamp: 2018-11-19T18:48:30Z
   deletionTimestamp: 2018-11-19T18:59:36Z
   name: <terminating-namespace>
   resourceVersion: "1385077"
   selfLink: /api/v1/namespaces/<terminating-namespace>
   uid: b50c9ea4-ec2b-11e8-a0be-fa163eeb47a5
 spec:
   finalizers:

   - kubernetes
     status:
        phase: Terminating

然后修改这个json文件,把finalizers的kubernetes删掉

apiVersion: v1
 kind: Namespace
 metadata:
   creationTimestamp: 2018-11-19T18:48:30Z
   deletionTimestamp: 2018-11-19T18:59:36Z
   name: <terminating-namespace>
   resourceVersion: "1385077"
   selfLink: /api/v1/namespaces/<terminating-namespace>
   uid: b50c9ea4-ec2b-11e8-a0be-fa163eeb47a5
 spec:
   finalizers:[
   
   ]
   status:
     phase: Terminating

然后把本机服务暴露在本地端口的8001端口上

kubectl proxy

Starting to serve on 127.0.0.1:8001

新开一个terminal,把修改后的tmp.json到要删除的ns资源目录下

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/<terminating-namespace>/finalize

本文作者:makalo

本文链接:https://www.cnblogs.com/makalochen/p/16287808.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   makalo  阅读(463)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2020-05-19 win10 激活
2020-05-19 window10 将程序的快捷方式加到右键"发送到"
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起