我有一个运行一些 pod 的k3s集群。我想获取所有名称中包含grafana的运行状态的 pod 。
从文档看来,我可以使用字段选择器标志来实现它(在 v1.9 版本中引入)。但是当我试一试时,它没有用。
我知道我可以强制删除具有终止状态的 pod 以获得我想要的。我想在这里知道的是,为什么我的命令没有按预期工作?我错过了什么?
顺便说一句,Terminating pod 已经存在了一段时间。我相信它被卡住了。但同样,这不是这个问题的兴趣所在。
我有一个运行一些 pod 的k3s集群。我想获取所有名称中包含grafana的运行状态的 pod 。
从文档看来,我可以使用字段选择器标志来实现它(在 v1.9 版本中引入)。但是当我试一试时,它没有用。
我知道我可以强制删除具有终止状态的 pod 以获得我想要的。我想在这里知道的是,为什么我的命令没有按预期工作?我错过了什么?
顺便说一句,Terminating pod 已经存在了一段时间。我相信它被卡住了。但同样,这不是这个问题的兴趣所在。
如果您查看关于 pod-lifecycle 的 k8s 文档,您会发现 status.phase 只能有 5 个不同的值,并且没有一个是 Terminating
. 这意味着终止状态没有反映在该场中,因此通过相位场进行过滤是无用的。
尽管过滤器似乎不支持此字段标签,但终止状态反映在.status.containerStatuses.state
(文档中的容器状态)下。
所以,你可以做什么?
您可以做的最简单的事情是使用 grep 两次:
kubectl get pods | grep grafana | grep Running