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
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.