Bila anda baru ke dunia Kubernetes, bisa jadi kebingungan pertama kali bertemu dengan POD yang tidak bisa dihapus. Kita sama ;), untuk itu mari ikuti langkah-demi-langkah cara untuk mendapatkan apa yang harus dilakukan untuk menghapus POD tersebut.

Jadikan ini untuk pelajaran menghapus berbagai resource yang ada di Kubernetes.

Lihat daftar POD

$ kubectl get pods
NAME                                     READY   STATUS              RESTARTS   AGE
centrifugo-deployment-56b486d69c-smmq7   0/1     ContainerCreating   0          3d1h
centrifugo-deployment-56b486d69c-xsx28   0/1     ContainerCreating   0          7m31s
nginx-deployment-5ff58d798d-qrt9s        1/1     Running             1          3d1h

sebagai contoh, hapus pod nginx

kubectl delete pod nginx-deployment-5ff58d798d-qrt9s

tunggu beberapa saat lagi, pod tersebut muncul lagi

$ kubectl get pods
NAME                                     READY   STATUS              RESTARTS   AGE
centrifugo-deployment-56b486d69c-smmq7   0/1     ContainerCreating   0          3d1h
centrifugo-deployment-56b486d69c-xsx28   0/1     ContainerCreating   0          8m23s
nginx-deployment-5ff58d798d-vzmtp        1/1     Running             0          7s

ini bukan lah magic, tetapi begitulah cara kerjanya. Untuk melihat apa yang mengelola pod tersebut, cek informasinya

kubectl  describe pod  NAMAPOD
# contoh
kubectl  describe pod  nginx-deployment-5ff58d798d-vzmtp

kubernetes delete deployment
disini yang relevan adalah Controller By

Controlled By:  ReplicaSet/nginx-deployment-5ff58d798d

dia akan tetap mereplica nginx yang ada sesuai dengan jumlah yang sudah di tentukan sebelumnya. Informasinya bisa diambil dengan

$ kubectl get rs
NAME                               DESIRED   CURRENT   READY   AGE
centrifugo-deployment-56b486d69c   2         2         0       3d1h
chart-contoh-6dfd55974d            1         1         1       3d1h
nginx-deployment-5ff58d798d        1         1         1       3d1h

nginx-deployment-5ff58d798d ini adalah induk dari POD nginx-deployment-xxx, selama dia ada maka POD tersebut akan tetap dibuat. Lihat kembali resourcenya

$ kubectl describe rs nginx-deployment-5ff58d798d
# output
Name:           nginx-deployment-5ff58d798d
Namespace:      default
Selector:       app=nginx,pod-template-hash=5ff58d798d
Labels:         app=nginx
                pod-template-hash=5ff58d798d
Annotations:    deployment.kubernetes.io/desired-replicas: 1
                deployment.kubernetes.io/max-replicas: 2
                deployment.kubernetes.io/revision: 1
Controlled By:  Deployment/nginx-deployment
Replicas:       1 current / 1 desired
Pods Status:    1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:  app=nginx
           pod-template-hash=5ff58d798d
  Containers:
   nginx:
    Image:        nginx:stable
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Events:
  Type    Reason            Age   From                   Message
  ----    ------            ----  ----                   -------
  Normal  SuccessfulCreate  99s   replicaset-controller  Created pod: nginx-deployment-5ff58d798d-hmlbw

kita mengetahui yang memanage resource ini adalah Controlled By : Deployment/nginx-deployment, cek deployment dengan nama tersebut, yang perlu diambil bagian paling belakang saja

$ kubectl get deployment | grep nginx-deployment
nginx-deployment        1/1     1            1           3d1h

hapus deployment tersebut

kubectl delete deployment nginx-deployment

coba cek kembali replicaset dan pod nginx sudah dihapus sekaligus.

Leave a comment

Your email address will not be published. Required fields are marked *