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