查看命名空间状态,[NAMESPACE] 处于 Terminating

 kubectl get ns

在这里插入图片描述

使用强制删除命令没有效果

kubectl delete namespace [namespace] --force --grace-period=0  

解决办法:删除部署文件 yaml 中的 finalizers 属性

kubectl get namespace [NAMESPACE] -o json \
            | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
            | kubectl replace --raw /api/v1/namespaces/[NAMESPACE]/finalize -f -

在这里插入图片描述

 
如果这条命令无法删除可以换另一种方法

注意:需要打开两个控制台

  1. 开启代理
 kubectl proxy

在这里插入图片描述

  1. 打开另一个控制台,导出要删除的命名空间的 json 脚本
 kubectl get ns [namespace] -o json > tmp.json
  1. 编辑 tmp.json,删除其中 spec.finalizers 的内容

删除前
在这里插入图片描述

删除后
在这里插入图片描述

  1. 调用接口删除
 curl -k -H "Content-Type: application/json" -X PUT  --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/[namespace]/finalize
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐