如何在Kubernetes中删除Pod

在Kubernetes集群环境中工作时,有时会遇到需要从一个工作节点中删除pod的情况。
你可能需要调试节点本身的问题,升级节点,或者简单地缩减你的集群。
使用kubectl delete pod命令删除Kubernetes pod的操作非常简单。

kubectl delete pod pod -name

然而,你应该采取一些具体的步骤来尽量减少对你的应用程序的干扰。我将在本文中详细解释。
一、删除Kubernetes pods
首先,把所有的pod出来。

root@kmaster-rj:~# 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,运行以下命令。
root@kmaster-rj:~# kubectl delete pod pod-delete-demo
pod “pod-delete-demo” deleted
通过列出所有的Pod,确认相关的Pod已被删除。

root@kmaster-rj:~# 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 pod。
二、强制删除Kubernetes pods
为什么需要强制删除pod?
有时,Pod在超时后会卡在一个无法到达的Node上,处于终止/未知状态。
当用户试图在一个不可到达的节点上删除Pod时,Pod也可能进入这些状态。
在这些情况下,你可以强行删除pods。
如果你想使用kubectl版本>=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” 。

root@kmaster-rj:~# 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 may continue to run on the cluster indefinitely.
pod "pod-delete-demo" force delete

注意:强制删除pod不会等待来自kubelet的确认,即pod已被终止。
如果即使在这些命令之后,pod仍然停留在未知状态,请使用以下命令从集群中删除pod。

kubectl patch pod pod-delete-demo -p '{"metadata":{"finalizers":null}}'

确认 pod 已被删除:

root@kmaster-rj:~# 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>

希望你觉得这个Kubernetes小技巧对你有帮助。A5互联https://www.a5idc.net/

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值