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
相关推荐
hour_go5 小时前
《微服务系统故障诊断》:核心概念、技术流派与未来展望
微服务·云原生·架构
p***c9497 小时前
Docker机器学习实战
机器学习·docker·容器
pumpkin845149 小时前
Docker 参考手册
chrome·docker·容器
秋邱11 小时前
驾驭数据洪流:Python如何赋能您的数据思维与决策飞跃
jvm·算法·云原生·oracle·eureka·数据分析·推荐算法
三天不学习11 小时前
GitLab Docker 安装完整配置项说明
docker·容器·gitlab
瑶总迷弟13 小时前
在centos上基于kubeadm部署单master的k8s集群
linux·kubernetes·centos
优质&青年13 小时前
【Operator prometheus监控系列三---业务监控】
运维·云原生·kubernetes·自动化·prometheus
victory043113 小时前
K8S节点GPU插件plugin检测GPU排查问题办法
云原生·容器·kubernetes