有时候删除pod或者其它资源可能遇到一直处于Terminating的状态。这时可以尝试使用参数强制删除。

 kubectl delete namespace ingress-nginx --grace-period=0 --force

但有时候强制删除也不行,还是一直处于Terminating状态。这时候可以describe一下资源状态。根据报错处理。
还有一种特殊情况:

存在 Finalizers

k8s 资源的 metadata 里如果存在 finalizers,那么该资源一般是由某程序创建的,并且在其创建的资源的 metadata 里的 finalizers 加了一个它的标识,这意味着这个资源被删除时需要由创建资源的程序来做删除前的清理,清理完了它需要将标识从该资源的 finalizers 中移除,然后才会最终彻底删除资源。比如 Rancher 创建的一些资源就会写入 finalizers 标识。

**处理方法:**kubectl edit 手动编辑资源定义,删掉 finalizers,这时再看下资源,就会发现已经删掉了

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐