K8S删除pod的4种方法小结
作者:NIO4444
在Kubernetes集群环境中工作时,有时会遇到需要从一个工作节点中删除pod的情况,下面这篇文章主要给大家介绍了关于K8S删除pod的4种方法,需要的朋友可以参考下
通过名称name删除
#Kubernetes向进程发送一个SIGTERM信号并等待一定的秒数(默认为30),使其正常关闭。如果它没有及时关闭,则通过SIGKILL终止该进程。因此,为了确保你的进程总是正常关闭,进程需要正确处理SIGTERM信号。 kubectl delete pod pod_name
通过标签label删除
kubectl delete pod -l nio4444=true
通过namespace删除
#删除整个命名空间(pod将会伴随命名空间自动删除) kubectl delete -ns namespace_name
通过namespace删除
# 删除命名空间中的所有pod,但保留命名空间 kubectl delete pod --all
附:强制删除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>
总结
到此这篇关于K8S删除pod的4种方法小结的文章就介绍到这了,更多相关K8S删除pod内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!