How do I troubleshoot namespaces in a terminated state in my Amazon EKS cluster?
Last updated: 2022-10-20
I tried to delete a namespace in my Amazon Elastic Kubernetes Service (Amazon EKS) cluster. However, the namespace is stuck in the "Terminating" status.
Short description
To delete a namespace, Kubernetes must first delete all the resources in the namespace. Then, it must check registered API services for the status. A namespace gets stuck in "Terminating" status for the following reasons:
- The namespace contains resources that Kubernetes can't delete.
- An API service has a "False" status.
Resolution
Follow these instructions to delete namespaces that are stuck in the "Terminating" status.
1. Save a JSON file similar to the following:
kubectl get namespace <terminating-namespace> -o json > tempfile.json
2. Remove the finalizers array block from the spec section of the JSON file. The following is an example of the spec section of a JSON file that contains the finalizers array block to remove:
"spec": {
"finalizers": [
"kubernetes"
]
}
After removing the finalizers array block, the spec section of the JSON file looks like this:
"spec" : {
}
3. To apply the changes, run a command similar to the following:
kubectl replace --raw "/api/v1/namespaces/<terminating-namespace>/finalize" -f ./tempfile.json
4. Verify that the terminating namespace is removed:
kubectl get namespaces
Repeat these steps for any remaining namespaces stuck in the "Terminating" status.
Related information
Did this article help?
Do you need billing or technical support?