Kubernetes之删除Terminating状态的命名空间
Kubernetes之删除Terminating状态的命名空间
1.描述
使用kubectl delete -f xxx.yaml,再次执行 kubectl apply -f xxx.yaml,提示:
1 | Error from server (Forbidden): error when creating "kubesphere-complete-setup.yaml": configmaps "ks-installer" is forbidden: unable to create new content in namespace kubesphere-system because it is being terminated |
查看命名空间
1 | kubectl get ns |
发现kubesphere-system一直处于Terminating 状态。无法删除命名空间!!
2.解决办法
查看kubesphere-system的namespace描述
1 | kubectl get ns kubesphere-system -o json > kubesphere-system.json |
1 | # 编辑json文件,删除spec字段的内存,因为k8s集群时需要认证的。 |
1 | 将 |
1 | 改成 |
或者
1 | for NS in $(kubectl get ns 2>/dev/null | grep Terminating | cut -f1 -d ' '); do |
新开一个窗口运行kubectl proxy跑一个API代理在本地的8081端口
1 | kubectl proxy --port=8081 |
最后运行curl命令进行删除
1 | curl -k -H "Content-Type:application/json" -X PUT --data-binary @kubesphere-system.json http://127.0.0.1:8081/api/v1/namespaces/kubesphere-system/finalize |
注意:命令中的kubesphere-system就是命名空间。
再次查看命名空间
1 | kubectl get ns |
发现kubesphere-system命名空间已经消失了
评论