K8S中namespaces一直处于Terminating解决办法
今天在Rancher 2.0测试部署项目的时候发现一个用kubectl创建的namespaces一直处于Removing状态
后台检查这个namespaces一直报这个错:
Error from server (Conflict): Operation cannot be fulfilled on namespaces "gitlab-managed-apps": The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system.
刚开始根据日志以为是有资源没有被正确删除,使用以下命令检查:
kubectl get pod -n gitlab-managed-apps
kubectl get services -n gitlab-managed-apps
kubectl get secret -n gitlab-managed-apps
...........
都提示提示没有资源。
没办法了 只好动用大招 强制删除:
kubectl edit namespaces gitlab-managed-apps
删掉finalizers下面的所有类容:
保存之后再次查看。发现该类容又回来了。
最后的终极解决办法:
1、导出yml到本地 kubectl get namespace XXXXX -o json > tmp.json
2、设置tmp.json 中的 finalizers 为空list
3、用postman 带上已经登录RancherUI的 Cookie 设置Headers中Content-Type: application/json 设置Body——> binary 把tmp.json添加进去。然后以PUT的方式向https://XXXXXXX.com/k8s/clusters/local/api/v1/namespaces/XXXXXX/finalize 这个API请求。
以上完毕!
解决办法参考自: