k8s-unable to create new content in namespace kubernetes-dashboard because it is being terminated

k8s集群,重建dashboard时,执行delete后,显示pod已删除,再apply报错:(重建pod可直接kubectl delete pod )

[root@k8s-master01 files]# kubectl apply -f kubernetes-dashboard.yaml 
Warning: Detected changes to resource kubernetes-dashboard which is currently being deleted.
namespace/kubernetes-dashboard unchanged
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard unchanged
Error from server (Forbidden): error when creating "kubernetes-dashboard.yaml": serviceaccounts "kubernetes-dashboard" is forbidden: unable to create new content in namespace kubernetes-dashboard because it is being terminated
Error from server (Forbidden): error when creating "kubernetes-dashboard.yaml": services "kubernetes-dashboard" is forbidden: unable to create new content in namespace kubernetes-dashboard because it is being terminated

排查发现对应namespace没有删除,一直处于Terminating状态

[root@k8s-master01 files]# kubectl get ns
NAME                   STATUS        AGE
kubernetes-dashboard   Terminating   4d20h

解决:

[root@k8s-master01 ~]# kubectl get ns kubernetes-dashboard -o json > kubernetes-dashboard.json
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# vi kubernetes-dashboard.json 
找到finalize删除,如下:
"spec": { },

打开一个新窗口运行kubectl proxy跑一个API代理在本地的8081端口

[root@k8s-master01 ~]# kubectl proxy --port=8081
Starting to serve on 127.0.0.1:8081

curl删除

curl -k -H "Content-Type:application/json" -X PUT --data-binary @kubernetes-dashboard.json http://127.0.0.1:8081/api/v1/namespaces/kubernetes-dashboard/finalize

发现命名空间已删除,可正常apply.

 

 

 

 

 

 

 

 

 

[root@k8s-master01 ~]# kubectl proxy --port=8081
Starting to serve on 127.0.0.1:8081

posted @ 2022-02-18 13:18  llwang_12  阅读(38)  评论(0)    收藏  举报