问题描述
云容器引擎集群中如果已经安装了服务网格可能存在istio-system命名空间,如果要开通服务网格需要先清理命名空间,您可能会遇到删除命名空间后,命名空间一直处于Terminating状态,且无法删除。
原因
可能是因为命名空间下有其他资源,或者没有资源的情况也可能一直卡死。
解决方案
- kubectl get namespace -o json > ns.json。
- 编辑ns.json, 将spec.finalizers设为空数组。
- 执行kubectl proxy,启动一个kube api server本地代理。
- 另开一个窗口执行命令更新命名空间的finalizers。
curl -k -H "Content-Type: application/json" -X PUT --data-binary @ns.json http://127.0.0.1:8001/api/v1/namespaces/<terminating-namespace>/finalize