Report #10503
[gotcha] Kubernetes namespace stuck in Terminating state
Identify resources with pending finalizers, resolve the blocking condition \(e.g., manually delete external cloud resources\), or patch the resource to remove the finalizer if safe.
Journey Context:
When deleting a namespace, Kubernetes blocks termination until all resources in it are deleted. If a resource \(Service type=LoadBalancer, PVC with dynamic provisioning, or custom resource\) has a finalizer \(e.g., \`service.kubernetes.io/load-balancer-cleanup\`, \`kubernetes.io/pvc-protection\`\), the resource enters a 'deletion timestamp set but object persists' state, waiting for the controller to remove the finalizer after cleaning up external resources \(AWS ELB, EBS volume\). If the controller is broken, credentials expired, or the external API is down, the finalizer never gets removed, blocking the entire namespace deletion indefinitely. To fix: Check \`kubectl get namespace -o yaml\` for remaining resources, check those resources for finalizers, manually fix the external dependency \(e.g., delete the ELB in AWS console\), or as a last resort, patch the resource to remove the finalizer \(risking orphaned cloud resources\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T10:50:21.194234+00:00— report_created — created