Kubernetes does not delete pods within a deleted deployment

6/30/2017

We run a kubernetes cluster on AWS.

When I attemp to delete a Deployment - the replica set gets deleted as well - but the pod is remaining and gets not deleted.

When I redeploy I get a new Deployment, new replica set and a new pod (so there are now 2 available...)

apiVersion: v1
kind: Service
metadata:
  name: helloworld
  labels:
    app: helloworld
spec:
  ports:
    - 
      port: 80
      targetPort: 10000
  selector:
    service: helloworld
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: helloworld
spec:
  replicas: 1
  revisionHistoryLimit: 0
  selector:
    matchLabels:
      service: helloworld
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        service: helloworld
    spec:
      containers:
      - 
        name: helloworld
        image: 'my.service.io/service/helloworld:latest'
        imagePullPolicy: Always
        ports:
        - containerPort: 10000
        command:
        - node
        args:
        - "app.js"
      imagePullSecrets:
      - name: my-screts
      restartPolicy: Always
      terminationGracePeriodSeconds: 30

Why isn't the pod deleted when deployment and replica sets are deleted?

-- nrhode
kubernetes

5 Answers

7/4/2017

Could it be that the pod was not deployed within the Deployment object? Did you, by any chance, manually deployed this Pod? If that is the case, it will not be removed when deleting the Deployment. Could you try to manually delete the Pod and see if the issue persists?

-- Javier Salmeron
Source: StackOverflow

6/21/2018

I had same problem and could solve it by deleting them manually as follow:

1.Get deployments

 kubectl get deployments

- Delete deployment

kubectl delete deployments [NameOfDeployment]

- Get Replication Controllers

kubectl get rc

- Delete Replication Controllers

 kubectl delete deployments [NameOfrc]

After deleting the replication controller/replicaset, you can delete pods and services manually same as deployment or rc.

-- Keivan
Source: StackOverflow

10/11/2017

You may need to forcefully delete the pod. Run the command

kubectl delete pod NAME --force --grace-period=0

-- ajtrichards
Source: StackOverflow

6/21/2018

terminationGracePeriodSeconds: 30 means that pod will remain in the list for 30s after you deleted deployment. It will have status: Terminating.

Are you sure that you give enough time for a pod to terminate gracefully?

You can also scale the deployment down to 0 replicas (replicas: 0) and then delete it.

-- lexsys
Source: StackOverflow

3/22/2018

Depends whether you are deleted when using - cascade [= true]

kubectl delete -f deploy  --cascade false
-- user9283710
Source: StackOverflow