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
相关推荐
果子⌂5 分钟前
Docker-构建镜像并实现LNMP架构
mysql·nginx·docker·容器·架构·php
无敌糖果12 分钟前
K8S数据流核心底层逻辑剖析
docker·容器·kubernetes·k8s架构·底层逻辑·k8s数据流
阿里云云原生1 小时前
从 Python 演进探寻 AI 与云对编程语言的推动
云原生
亲爱的非洲野猪2 小时前
关于k8s Kubernetes的10个面试题
云原生·容器·kubernetes
西京刀客2 小时前
k8s之configmap
云原生·容器·kubernetes
❀͜͡傀儡师4 小时前
docker 安装数据集成平台 Apache SeaTunnel 服务
docker·容器
B1nna7 小时前
Docker学习
学习·docker·容器
缘友一世7 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
armcsdn18 小时前
基于Docker Compose部署Traccar容器与主机MySQL的完整指南
mysql·docker·容器