kubernetes deployments / replicasets are recreated after deletion

8/10/2020

I'm trying to delete some old deployments / replicasets I have in my cluster but when I run kubectl delete deployment <deployment name> It'll say the deployment is deleted and the pod from that deployment is Terminating, but then a few seconds later the deployment is magically recreated and the pod comes back. This is the same result for another replicaset I have.

What could be re-creating these deployments / replicasets and how can I stop it so I can permanently delete these deployments/rs?

Edit: Here's some output. This is on a kubernetes cluster in GKE btw:

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    1/1     1            1           41m
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d
quickstart-kb-f9b65577f-4fxph     1/1     Running   0          40m

kubectl delete deployment quickstart-kb
deployment.extensions "quickstart-kb" deleted

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    0/1     1            0           7s
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
quickstart-kb-6cb6cf897d-qcjff    0/1     Running   0          11s
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d

kubectl get deployments
NAME             READY   UP-TO-DATE   AVAILABLE   AGE
quickstart-kb    1/1     1            1           4m6s
ubuntu           1/1     1            1           66d

kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
quickstart-kb-6cb6cf897d-qcjff    1/1     Running   0          4m13s
ubuntu-677fc9fd77-fgd7k           1/1     Running   0          19d
-- johnb928
google-kubernetes-engine
kubectl
kubernetes

1 Answer

8/10/2020

I think your deployment object is created with the deployment of some custom resources (CRD).

When you created the CRD, the CRD controller created the deployment object. So, even if you delete the deployment object, the CRD controller re-creates it.

Delete the CRD object itself, to delete the deployment and other objects (if any) that were created with it.

From the name, it seems like Kibana CRD object:

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana

Use the following command to delete the Kibana object:

$ kubectl delete Kibana quickstart-kb
-- Kamol Hasan
Source: StackOverflow