k8s删除名称空间报错,一直处于Terminating状态中

原因:
因为ingress controller的镜像 pull 失败,一直在 retry ,所以我就把 ingress-controller delete 掉,但是一直卡住在删除 namespace
强制结束以后发现 pod 已经被删掉,导入容器以后重新 create 报错,报错内容就是 ingress-nginx 名称空间 处于 Terminating 状态
 
解决方法:
导出运行的名称空间至json文件,删掉其中的spec字段内容,因为k8s集群是携带认证的
 
kubectl get ns ingress-nginx -o json > tmp.json
 
执行以下curl命令,使用kube-apiserver的8080端口,执行删除操作
 
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8080/api/v1/namespaces/ingress-nginx/finaliz
 
如果kube-apiserver未开非安全端口,可以手动创建一个代理会话(打开一个新的shell终端)
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8081/api/v1/namespaces/ingress-nginx/finalize
 
然后就会删掉此ingress-nginx名称空间
posted @ 2022-06-28 16:56  opscool  阅读(475)  评论(0)    收藏  举报