前言
删除namespace时候,名称空间下还有资源,导致一直卡Terminating
[zz@rocky1 yaml]$ kubectl get ns NAME STATUS AGE default Active 26d halo Terminating 14d halo-pro Active 14d ingress-nginx Active 14d kube-flannel Active 26d kube-node-lease Active 26d kube-public Active 26d kube-system Active 26d kubernetes-dashboard Terminating 23h
解决方法
- 先以json格式导出namespace的文件
[zz@rocky1 yaml]$ kubectl get ns halo -ojson >tmp.json
再修改描述文件的内容,找到finalizers,删除其中内容
删除完成之后
- 新开一个终端并开启proxy
[zz@rocky1 ~]$ kubectl proxy Starting to serve on 127.0.0.1:8001
- 在当前终端调用PUT方法
[zz@rocky1 yaml]$ curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/halo/finalize #namespace后面对应的是需要删除的命名空间
检查
对多个Terminating的ns 通过上面的操作之后,完事了就可以将另一个终端关闭了
[zettakit@rocky1 yaml]$ kubectl get ns NAME STATUS AGE default Active 26d halo-pro Active 14d ingress-nginx Active 14d kube-flannel Active 26d kube-node-lease Active 26d kube-public Active 26d kube-system Active 26d