kubernetes 命名空间删不掉的问题
· 阅读需 1 分钟
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
"spec": {
"finalizers": [
"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