"Ghost" kubernetes pod stuck in terminating

7/27/2018

The situation

I have a kubernetes pod stuck in "Terminating" state that resists pod deletions

NAME                             READY STATUS       RESTARTS   AGE
...
funny-turtle-myservice-xxx-yyy   1/1   Terminating  1          11d
...

Where funny-turtle is the name of the helm release that have since been deleted.

What I have tried

try to delete the pod.

Output: pod "funny-turtle-myservice-xxx-yyy" deleted Outcome: it still shows up in the same state. - also tried with --force --grace-period=0, same outcome with extra warning

warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.

try to read the logs (kubectl logs ...).

Outcome: Error from server (NotFound): nodes "ip-xxx.yyy.compute.internal" not found

try to delete the kubernetes deployment.

but it does not exist.

So I assume this pod somehow got "disconnected" from the aws API, reasoning from the error message that kubectl logs printed.

I'll take any suggestions or guidance to explain what happened here and how I can get rid of it.

EDIT 1

Tried to see if the "ghost" node was still there (kubectl delete node ip-xxx.yyy.compute.internal) but it does not exist.

-- YannP
devops
kubernetes
kubernetes-helm

3 Answers

2/6/2020

In my case nothing worked, no logs, no delete, absolutely nothing. I had to restart all the nodes, then the situation cleared up, no more Terminating pods.

-- Tudor
Source: StackOverflow

7/27/2018

Try removing the finalizers from the pod:

kubectl patch pod funny-turtle-myservice-xxx-yyy -p '{"metadata":{"finalizers":null}}'
-- jaxxstorm
Source: StackOverflow

3/11/2019

In my case, the solution proposed by the accepted answer did not work, it kept stuck in "Terminating" status. What did the trick for me was:

kubectl delete pods <pod> --grace-period=0 --force
-- João Matos
Source: StackOverflow