多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## 删除pod处于 `Terminating` 状态 在工作中经常遇到pod一直处于terminating状态,时间长达几个小时还是无法删除的情况; 在这种情况下,可以强制删除此Pod; ```shell $ kubectl -n [namespace] delete pod [pod name] --force --grace-period=0 ``` ## 删除namespace处于 `Terminating` 状态 **方法一** namespaces无法删除的原因是此ns中还有资源,所以导致ns无法删除 ```shell $ kubectl edit namespaces [namespace name] ``` > 注:把圈中的2行(`.spec.finalizers`)删除,namespaces就会立即删除 > ![](https://img.kancloud.cn/98/be/98be8aaef9e885dd9c5560a1f05a5152_577x293.png) **方法二** > 当方法一行不通的时候,才使用该方法。 1. 打开 kube-apiserver 的 8080 端口 ```shell $ kubectl proxy ``` 2. 获取命名空间json信息 > 重新打开一个远程终端 ```shell $ kubectl get ns <name_of_namespace> -ojson > /tmp/temp.json ``` 3. 编辑命名空间json信息 (将 .spec.finalizers 下的内容删除掉) ![](https://img.kancloud.cn/63/74/6374c8dd66906eceaed2b4da584d7cc3_1108x699.png) 4. 通过 api 接口删除 finalizers 信息 ```shell $ curl -k -H "Content-Type: application/json" -X PUT --data-binary @/tmp/temp.json http://127.0.0.1:8001/api/v1/namespaces/<name_of_namespace>/finalize ``` 5. 验证 ```shell kubectl get ns <name_of_namespace> ```