Skip to content

1.ns无法删除

bash
[root@master1 ~]# kubectl get ns
NAME                         STATUS        AGE
default                      Active        2d22h
kube-node-lease              Active        2d22h
kube-public                  Active        2d22h
kube-system                  Active        2d22h
kubesphere-logging-system    Terminating   109m
[root@master1 ~]# kubectl get ns
NAME                         STATUS        AGE
default                      Active        2d22h
kube-node-lease              Active        2d22h
kube-public                  Active        2d22h
kube-system                  Active        2d22h
kubesphere-logging-system    Terminating   109m

1.1查看该空间资源

bash
kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n kubesphere-logging-system
kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n kubesphere-logging-system

1.2清理

如果出现Terminating状态的命名空间,强制删除也不管用,执行以下命令

清空 finalizers 字段的值

kubectl patch namespace NS -p '{"metadata":{"finalizers":[]}}' --type='merge' -n NS
kubectl patch namespace NS -p '{"metadata":{"finalizers":[]}}' --type='merge' -n NS

再查看 ns,如果没有这个 ns了就不用管了,很有可能需要手动再删除,执行下面命令就行

kubectl delete namespace NS --grace-period=0 --force
kubectl delete namespace NS --grace-period=0 --force

或者

  • 获取ns详细信息
bash
 kubectl get ns kubesphere-logging-system -o json > ns.json
 
 // 删除下面的部分
 //   "spec": {
 //       "finalizers": [
 //           "kubernetes"
 //       ]
 //   },
 kubectl get ns kubesphere-logging-system -o json > ns.json
 
 // 删除下面的部分
 //   "spec": {
 //       "finalizers": [
 //           "kubernetes"
 //       ]
 //   },
bash
#启动proxy
kubectl proxy

# 注意配置finalize前面的namespace
 curl -k -H "Content-Type: application/json" -X PUT --data-binary @ns.json http://127.0.0.1:8001/api/v1/namespaces/kubesphere-logging-system/finalize
#启动proxy
kubectl proxy

# 注意配置finalize前面的namespace
 curl -k -H "Content-Type: application/json" -X PUT --data-binary @ns.json http://127.0.0.1:8001/api/v1/namespaces/kubesphere-logging-system/finalize