Deleting stuck Kubernetes workloads in Rancher v2.
How to handle workloads that won't delete and are stuck in "waiting on foregroundDeletion."
July 4, 2018
rancher kubernetesI had a large number of workloads that I deleted with kubectl delete
. They all fell into a state of “Waiting on foregroundDeletion.”
I believe that this happened because I had scaled them to 0 replicas a day ago while testing a different version of the application running inside. Workloads with no replicas would not delete. If I scaled it to 1 replica and immediately deleted the workload, the deletion passed through foregroundDeletion and completed.
I was able to finalize the deletion of the stuck workloads by patching the deployment and removing the finalizer
key (Note that monitor-1a
matched the stuck workloads):
kubectl -n monitoring get deploy | grep monitor-1a | awk '{ print $1 }' | while read x; do kubectl -n monitoring patch deploy/$x -p '{"metadata":{"finalizers":null}}'; done
For the remaining workloads that still had 0 replicas I scripted the scale/delete, and they all deleted fine (Note that monitor-1c
matched the workloads that were not stuck but still had 0 replicas):
kubectl -n monitoring get deploy | grep monitor-1c | awk '{ print $1 }' | while read x; do kubectl -n monitoring scale deploy/$x --replicas=1; sleep 1; kubectl -n monitoring delete deploy/$x; done