How do I force delete kubernetes pods?

5/14/2018

I have the following pods:

NAME                                                 READY     STATUS        RESTARTS   AGE
xxx-myactivities-79f49cdfb4-nwg22                      1/1       Terminating   0          10h
xxx-mysearch-55864b5c59-6bnwl                          1/1       Terminating   0          1d
xxx-mysearch-55864b5c59-rpn48                          1/1       Terminating   0          13h
xxx-mysearch-6ff9bbb7cb-9qgbb                          1/1       Terminating   0          3d

I am running the following code to forcefully delete those pods:

#
# Clean up dying pods
#
pods=$( kubectl get pods | grep -v Running | tail -n +2 | awk -F " " '{print $1}' )
for pod in $pods;
do
    kubectl delete pod $pod --force
done

Here is the output:

pod "xxx-myactivities-79f49cdfb4-nwg22" deleted
pod "xxx-mysearch-55864b5c59-6bnwl" deleted
pod "xxx-mysearch-55864b5c59-rpn48" deleted
pod "xxx-mysearch-6ff9bbb7cb-9qgbb" deleted

After cleaning up, those pods still hang around.

NAME                                                 READY     STATUS        RESTARTS   AGE
xxx-myactivities-79f49cdfb4-nwg22                      1/1       Terminating   0          10h
xxx-mysearch-55864b5c59-6bnwl                          1/1       Terminating   0          1d
xxx-mysearch-55864b5c59-rpn48                          1/1       Terminating   0          13h
xxx-mysearch-6ff9bbb7cb-9qgbb                          1/1       Terminating   0          3d

How do I clean up those pods?

-- user9524761
kubernetes

6 Answers

1/26/2019

To clean the pods you need to delete their deployments namespace.

First discover that deployments existed:

$ kubectl get deployments --all-namespaces
NAME                               READY     STATUS        RESTARTS   AGE
chetabahana-web-584b95d576-62ccj   1/1       Running       0          20m
tutorial-web-56fbccc56b-wbwjq      1/1       Running       0          1m

Delete the deployment <NAME>-xxxx like this:

$ kubectl delete deployment <NAME>

For example to delete tutorial-web-56fbccc56b-wbwjq run:

$ kubectl delete deployment tutorial

Then all corresponded pods of tutorial-xxxx will terminate by itself.

NAME                               READY     STATUS        RESTARTS   AGE
chetabahana-web-584b95d576-62ccj   1/1       Running       0          20m
tutorial-web-56fbccc56b-wbwjq      0/1       Terminating   0          1m
-- Chetabahana
Source: StackOverflow

5/14/2018

You have these alternatives:

kubectl delete pod xxx --now 

Or

SSH into the node the stuck pod was scheduled on Running docker ps | grep {pod name} to get the Docker Container ID Running docker rm -f {container id}

Or

kubectl delete pod NAME --grace-period=0 --force
-- James Knott
Source: StackOverflow

3/9/2019

To delete all pods in terminating state with one command do:

for p in $(kubectl get pods | grep Terminating | awk '{print $1}'); do kubectl delete pod $p --grace-period=0 --force;done
-- belabrinel
Source: StackOverflow

1/14/2020

For deleting pod forcefully use this.

kubectl delete pod <Pod_Name> -n <namespace_name> --grace-period=0 --force

OR

kubectl delete pod <Pod_Name> -n <namespace_name> --wait=false

For reference please follow below link. 1. https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/

-- Sachin Arote
Source: StackOverflow

4/27/2020

In case you used Helm to install the pod just run

helm delete Your_Deployment_Name -n The_Namespace
-- moshe beeri
Source: StackOverflow

6/20/2019
kubectl get pod --all-namespaces | awk '{if ($4 != "Running") system ("kubectl -n " $1 " delete pods " $2  " --grace-period=0 " " --force ")}'

you can use this command

-- lanni654321
Source: StackOverflow