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 小时前
Docker的/var/lib/docker/目录占用100%的处理方法
运维·docker·容器
OKUNP5 小时前
Docker高级管理--容器通信技术与数据持久化
docker·容器·php
洁辉6 小时前
Spring Cloud 全栈指南:构建云原生微服务的终极武器
spring cloud·微服务·云原生
阿里云云原生8 小时前
加工进化论:SPL 一键加速日志转指标
云原生
阿里云云原生9 小时前
破解异构日志清洗五大难题,全面提升运维数据可观测性
云原生
果子⌂14 小时前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
无敌糖果14 小时前
K8S数据流核心底层逻辑剖析
docker·容器·kubernetes·k8s架构·底层逻辑·k8s数据流
阿里云云原生15 小时前
从 Python 演进探寻 AI 与云对编程语言的推动
云原生
亲爱的非洲野猪16 小时前
关于k8s Kubernetes的10个面试题
云原生·容器·kubernetes
西京刀客16 小时前
k8s之configmap
云原生·容器·kubernetes