Kubernetes Namespace Stuck in Terminating State
Often the deletion of a namespace
is required and using the well-known command to delete kubernetes
namespace
kubectl delete ns <namsepace_name>
puts the namespace
in Terminating
state and it gets stuck there. Waiting for hours, even days won’t help in this regard unless the finalizers
are deleted and the manifest has been replaced via kubernetes
API.
Fix
To fix namespace delete stuck in terminating state. We get the namespace manifest and save it as a JSON
file.
NOTE
Change namespace_name
to the namespace name that is in a terminating
state.
kubectl get ns namespace_name -o json > namesapce_name.json
Once we have the JSON file, edit the file to delete the kubernetes
finalizers.
sed -i -e 's/"kubernetes"//' namespace_name.json
Now, that we have removed the finalizers, we need to replace
this manifest via kubernetes
API.
kubectl replace --raw "/api/v1/namespaces/namespace_name/finalize" -f ./namespace_name.json
This should delete the stuck namespace.