在k8s 里面如果直接刪除pod,, 是起不到作用的,因為刪除的pod 還是被繼續拉起來。
看下面的例子,我們把 deployment-ngx-8ff559dc9-5v5f7 這個pod 通過kubectl delete pod 的方式刪除掉
[root@k8s-master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE deployment-ngx-8ff559dc9-5v5f7 1/1 Running 0 10m deployment-ngx-8ff559dc9-xcskd 1/1 Running 0 10m test 1/1 Running 0 22h test-nginx 1/1 Running 0 22h [root@k8s-master ~]# kubectl delete deployment-ngx-8ff559dc9-5v5f7 error: the server doesn't have a resource type "deployment-ngx-8ff559dc9-5v5f7" [root@k8s-master ~]# kubectl delete pod deployment-ngx-8ff559dc9-5v5f7 pod "deployment-ngx-8ff559dc9-5v5f7" deleted [root@k8s-master ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES deployment-ngx-8ff559dc9-br8ww 0/1 ContainerCreating 0 15s <none> k8s-node1 <none> <none> deployment-ngx-8ff559dc9-xcskd 1/1 Running 0 10m 10.244.36.74 k8s-node1 <none> <none> test 1/1 Running 0 22h 10.244.36.68 k8s-node1 <none> <none> test-nginx 1/1 Running 0 22h 10.244.169.131 k8s-node2 <none> <none>
但是又立馬重啟了一個新的同類型的pod。
是因為deployment 控制replicasSet,, 當副本數跟實際的不相符的時候,rs 會自動再創建新的,直到跟模板上的一致
那么問題來了,要想刪除pod 該怎么辦呢
其實通過刪除deployment,, 然后機會自動刪除pod
[root@k8s-master ~]# kubectl delete deployment deployment-ngx deployment.apps "deployment-ngx" deleted [root@k8s-master ~]# kubectl get deployment No resources found in default namespace. [root@k8s-master ~]# kubectl get pods NAME READY STATUS RESTARTS AGE deployment-ngx-8ff559dc9-br8ww 0/1 Terminating 0 6m10s deployment-ngx-8ff559dc9-xcskd 0/1 Terminating 0 16m test 1/1 Running 0 22h test-nginx 1/1 Running 0 22h