kubernetes里命名空间删不掉的问题
如果某个命名空间(此例里是ingress-nginx)迟迟删除不掉,状态一直是Terminating,然后在此命名空间里重新创建资源时报如下错误:
Error from server (Forbidden): error when creating "nginx-controller.yaml": roles.rbac.authorization.k8s.io "ingress-nginx-admission" is forbidden: unable to create new content in namespace ingress-nginx because it is being terminated
解决办法
在第一个终端里执行
kubectl proxy
在第二个终端里
kubectl get namespace ingress-nginx -o json > xx.json
用vim编辑xx.json
改成
把这当中的kubernetes删除,或者直接用如下命令删除
sed -i '/"finalizers"/{n;d}' xx.json
然后执行如下命令:
curl -k -H "Content-Type: application/json" -X PUT --data-binary @xx.json \
http://127.0.0.1:8001/api/v1/namespaces/ingress-nginx/finalize
这样即可删除。