删除Kubernetes名称空间一直处于Terminating状态怎么办
在使用Kubernetes的时候,执行删除namespace命令后挂着不动,要删除namspace一直处于Terminating状态该怎么处理。出现问题的时候我的名称空间是eckal,下面我就把我解决问题的具体做法介绍一下:首先使用命令行方式删除,执行如下命令:#kubectl delete ns eckal过了一会,通过命令kubectl get ns查看,名称空间eckal还处于Termina
在使用Kubernetes的时候,执行删除namespace命令后挂着不动,要删除namspace一直处于Terminating状态该怎么处理。出现问题的时候我的名称空间是eckal,下面我就把我解决问题的具体做法介绍一下:
首先使用命令行方式删除,执行如下命令:
#kubectl delete ns eckal
过了一会,通过命令kubectl get ns查看,名称空间eckal还处于Terminating状态,以为是删除慢,多等待了一会,但还是这个状态。
我使用如下指令,查看了一下资源,发现名称空间eckal下已没有资源了。
# kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n eckal
使用ctrl+c退出命令,然后在指令后添加强制删除参数,问题依然存在。
#kubectl delete ns eckal --grace-period=0 --force
注:这里也可以尝试在后面添加参数--ignore-not-found
接下来使用原生接口删除,竟然成功了,具体操作如下:
1、获取namespace描述,把spec的内容清空, 删除finalizers属性
#kubectl get namespace eckal -o json > tmp.json
2、启动一个API代理在本地的8088端口,注意端口不要有冲突
#kubectl proxy --port=8088
3、执行删除动作
#curl -k -H "Content-Type:application/json" -X PUT --data-binary @tmp.json https://127.0.0.1:8088/api/v1/namespaces/eckal/finalize
更多推荐
所有评论(0)