K8S 删除命令空间时 一直卡住怎么办?

文章讲述了在Kubernetes中遇到命名空间删除问题,特别是当Terminating状态时,通过强制删除和常规方法失败的情况。提供了解决方案,包括使用KubernetesAPI导出并修改namespace的JSON文件,移除finalizers并最终通过代理接口删除。
摘要由CSDN通过智能技术生成

        当使用完一个命名空间后,想删除了又删除不掉,这个时候查看命名空间的状态一直是Terminating。使用强制删除,也是还是不行。(找了好多办法都不行)

[root@k8s-master kubernetes-yaml]# kubectl delete ns mem-example
Error from server (Conflict): Operation cannot be fulfilled on namespaces "mem-example": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system.

 1、原因(可能是因为这个命名空间namespace 下边又正在运行的pod。或者存在pod)也有可能这是K8S的一种机制。

2、使用强制删除命令 kubcelt delete ns [namespace] --force --grace-period=0 还是会报错。

 3、解决方法:可以使用K8S的API删除。

        1、首先导出需要删除的namespace的json文件到本地的json文件中。kubectl get ns demo-ns -o json > tmp.json

         2、修改刚刚导出的文件,将"finalizers": [ "kubernetes"] 修改为"finalizers": [ ],保存并退出

        3、打开一个新窗口,使用 kubectl proxy --port=8001,

        4、在原先的窗口使用更改接口,来删除namespace tmp.json修改为自己保存的,cpu-test,是需要删除命名空间。curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/cpu-test/finalize

        5、使用 kubec get ns 查看命令空间已经被删除

以上是解决K8S删除命名空间的方法,希望能帮助大家,欢迎一起探讨!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值