K8s删除命名空间时,可能会遇到卡住导致状态一直为Terminating,本文提供一些排查解决思路。

1.  首先describe ns查看是否报错,如果遇到NamespaceDeletionDiscoveryFailure报错,进而检查apiservices.apiregistration.k8s.io资源

kubectl get apiservices.apiregistration.k8s.io
kubectl delete apiservices.apiregistration.k8s.io v3.test.apiservice

可发现有些资源状态有问题,修复或删除状态错误的apiservices资源,等待一下命名空间会被释放

补充:k8s中存在APIService对象时,删除命名空间时会访问APIService对象,如果存在APIService对象不能访问,会阻塞命名空间删除。有些插件会自动创建APIService,如metrics-server等。

2.  其次检查该命名空间下是否存在资源未被释放,查看命名空间下所有资源的命令:

kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n default

将查到的资源进行删除

3.  上面两种方法如果还不能删除Terminating的命名空间,还有一种方法是通过接口强制删除命名空间,网上有大量的相关博客,这里不作赘述(个人不推荐这种方法,太恐怖了!)

参考博客:https://www.cnblogs.com/lvzhenjiang/p/13924581.html

Logo

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

更多推荐