如何在Kubernetes中删除POD
时间:2020-03-05 15:31:08 来源:igfitidea点击:
在研究Kubernetes群集环境时,有时运行到我们需要从一个工作者节点中删除POD的情况。
我们可能需要使用节点本身调试问题,升级节点或者简单地缩小群集。
删除Kubernetes Pod的动作非常简单,"kubectl删除pod"命令非常简单:
kubectl delete pod pod-name
但是,我们应该采取具体步骤以最大限度地减少应用程序的中断。
我会在本文中详细解释。
优雅地删除Kubernetes Pods
首先,列出所有POD:
Hyman@theitroad:~# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-dep-557548758d-d2pmd 1/1 Running 0 2d23h 172.16.213.194 kworker-rj2 <none> <none> my-dep-557548758d-gprnr 1/1 Running 0 2d23h 172.16.213.49 kworker-rj1 <none> <none> pod-delete-demo 1/1 Running 0 4s 172.16.213.196 kworker-rj2 <none> <none>
现在假设要删除名为"pod-delete-demo"的Pod,请运行以下命令:
Hyman@theitroad:~# kubectl delete pod pod-delete-demo pod "pod-delete-demo" deleted
通过列出所有POD,确认删除有问题的POD:
Hyman@theitroad:~# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-dep-557548758d-d2pmd 1/1 Running 0 2d23h 172.16.213.194 kworker-rj2 <none> <none> my-dep-557548758d-gprnr 1/1 Running 0 2d23h 172.16.213.49 kworker-rj1 <none> <none>
我们可以看到没有运行的POD-DELET-DEMO POD。
强制删除Kubernetes Pods
你为什么需要强迫Pods删除?
有时,在超时后,POD会在无法到达节点上暂停/未知状态。
当用户尝试在无法访问的节点上尝试优于删除POD时,POD也可以输入这些状态。
在这些方案中,我们可以使用能力删除POD。
如果要使用kubectl version> = 1.5强制删除POD,请执行以下操作:
kubectl delete pods pod_name --grace-period=0 --force
如果我们使用的是任何版本的kubectl <= 1.4,则应省略--force
选项和使用:
kubectl delete pods pod_name --grace-period=0
现在让我们使用上述方法删除Pod"Pod-Delete-Demo":
Hyman@theitroad:~# kubectl delete pod pod-delete-demo --force --grace-period=0 --namespace=default warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource Jan continue to run on the cluster indefinitely. pod "pod-delete-demo" force delete
注意:Force Pod删除不等待POD已终止的Kubelet确认。
如果即使在这些命令之后,POD卡在"未知"状态下,请使用以下命令从群集中删除POD:
kubectl patch pod pod-delete-demo -p '{"metadata":{"finalizers":null}}'
确认POD已被删除:
Hyman@theitroad:~# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-dep-557548758d-d2pmd 1/1 Running 0 2d23h 172.16.213.194 kworker-rj2 <none> <none> my-dep-557548758d-gprnr 1/1 Running 0 2d23h 172.16.213.49 kworker-rj1 <none> <none>