k8s删除namespace失败一直处于Terminating状态

获取Terminating状态的namespace

~ kubectl  get namespace
NAME                                     STATUS        AGE
bluehelix                                Active        146d
broker                                   Active        146d
cattle-fleet-clusters-system             Active        87d
cert-manager                             Terminating   87d

查询要删除的namespace下是否还有资源

~ kubectl  get all -n cert-manager
No resources found in cert-manager namespace.

导出为json

~ kubectl get ns cert-manager -o json > cert-manager.json

删除json文件中的finalize关键字字段

vim cert-manager.json
删除前 
    "spec": {
        "finalizers": [
            "kubernetes"
        ]
    },
 
删除后
    "spec": {
        "finalizers": []
    },

开启 proxy

~ kubectl proxy
Starting to serve on 127.0.0.1:8001

另起终端 指定刚才的json文件 执行以下命令进行删除操作

curl -k -H "Content-Type: application/json" -X PUT --data-binary @cert-manager.json http://127.0.0.1:8001/api/v1/namespaces/cert-manager/finalize  

再次获取namespace状态,删除成功

~ kubectl  get namespace
NAME                                     STATUS        AGE
bluehelix                                Active        146d
broker                                   Active        146d
cattle-fleet-clusters-system             Active        87d

如果仍然无法删除命名空间,请查看metadata部分是否存在finalizers字段,如果存在,需要通过如下命令进入命名空间后删除该字段,把metadata部分存在finalizers字段都删掉即可

kubectl edit ns cert-manager 

原文链接

https://blog.csdn.net/ma_qi_chao/article/details/135022175
相关推荐
π大星星️1 小时前
Kubernetes中的微服务
微服务·容器·kubernetes
沉默的八哥1 小时前
如何配置 Horizontal Pod Autoscaler (HPA)
运维·kubernetes
朱剑君2 小时前
番外篇 - Docker的使用
爬虫·docker·容器
AWS官方合作商2 小时前
AWS原生架构下的服务器性能与成本平衡之道——海外业务云端实践
服务器·云原生·云计算·aws
weixin_748877007 小时前
【2025年后端开发终极指南:云原生、AI融合与性能优化实战】
人工智能·云原生·性能优化
LCY13312 小时前
k8s的配置文件说明
云原生·容器·kubernetes
小刘爱喇石( ˝ᗢ̈˝ )12 小时前
玛卡巴卡的k8s知识点问答题(二)
docker·容器·kubernetes
encoding-console12 小时前
k8s概念及k8s集群部署(Centos7)
云原生·容器·kubernetes·centos·部署
Ares-Wang12 小时前
docker compose
java·docker·容器
Hellc00714 小时前
使用 Docker 部署 BaGet 并推送 NuGet 包
java·docker·容器