尝试删除Kubernetes命名空间后,长时间停留在终止状态。本文介绍如何解决命名空间处于终止状态的问题。
问题现象
尝试删除Kubernetes命名空间后,长时间停留在终止状态。
kubectl delete ns <namespacename>
Error from server (Conflict): Operation cannot be fulfilled on namespaces "<namespacename>": The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system.
kubectl describe ns <namespacename>
Name: <namespacename>
Labels: <none>
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"<namespacename>","namespace":""}}
Status: Terminating
可能原因
通常是因为从集群中删除的这些命名空间下存在资源。
解决方案
删除命名空间的finalizers。
该选项将会快速清除处于终止状态的命名空间,但可能会导致属于该命名空间的资源留在集群中,因为无法自动删除它们。在finalizers数组为空并且状态为终止之后,Kubernetes将删除命名空间。