如何删除挂起状态超过n小时的过期实例? [英] How to delete stale pods which are in Pending state for more than n hours?
本文介绍了如何删除挂起状态超过n小时的过期实例?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用以下命令正常删除处于Pending状态的所有过期Pod:
kubectl get pod -n my-namespace | grep Pending | awk '{print $1}' | xargs kubectl delete pod -n my-namespace
get pods
一起返回的AGE
列,但其时间单位有所不同,我假设有更好的方法。
我的目标是定期运行此命令以清理挂起的Pod,如果任何人能提出任何有关此问题的最佳实践,我将不胜感激。
推荐答案
如果没有一些第三方工具的帮助,单独使用kubectl
很难计算Pod在特定状态下花费了多少时间。不过,我有一个解决方案,您可能会觉得有用。
您可以列出Pending
状态和超过X天的所有Pod。例如,以下命令将列出超过5天的所有Pending
Pod:
kubectl get pods --field-selector=status.phase=Pending --sort-by=.metadata.creationTimestamp | awk 'match($5,/[6-9]d|[0-9][0-9]d|[0-9][0-9][0-9]d/) {print $0}'
然后您可以使用下一个命令删除这些Pod:
kubectl delete pod $(kubectl get pods --field-selector=status.phase=Pending --sort-by=.metadata.creationTimestamp | awk 'match($5,/[6-9]d|[0-9][0-9]d|[0-9][0-9][0-9]d/) {print $0}')
可以也应该通过修改awk
脚本来调整该值,以便与您的用例匹配。
这篇关于如何删除挂起状态超过n小时的过期实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文