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
相关推荐
代码改善世界4 小时前
【前瞻创想】Kurator:驾驭分布式云原生世界的“统一舰队”
分布式·云原生
java_logo4 小时前
MySQL Server Docker 容器化部署指南
linux·运维·数据库·docker·容器
代码改善世界5 小时前
【探索实战】从零到一:Kurator 构建分布式云原生平台的探索与实践
分布式·云原生
e***19355 小时前
docker compose安装redis
redis·docker·容器
hadage2335 小时前
--- docker 一些指令的汇总 ---
运维·docker·容器
车传新5 小时前
Docker
docker·容器
BullSmall6 小时前
15分钟速通Docker核心实战
运维·docker·容器
小马爱打代码6 小时前
k8s:SpringBoot应用容器化
spring boot·容器·kubernetes