【问题标题】:Why kubectl returns pods with 'Terminating' status when I query for just running pods?为什么当我查询正在运行的 Pod 时,kubectl 返回具有“Terminating”状态的 Pod?
【发布时间】:2020-11-17 09:15:24
【问题描述】:

我有一个 k3s 集群,其中一些 pod 正在运行。我想获取所有状态为 Running 且名称中包含 grafana 的 pod。

从文档看来,我可以使用field selector 标志来实现它(was introduced in v1.9 release)。但是当我尝试它时,它没有工作。

我知道我可以强制删除具有 Terminating 状态的 pod 以获得我想要的。我想在这里知道的是,为什么我的命令没有按预期工作?我错过了什么吗?

顺便说一句,Terminating pod 已经存在了一段时间。我相信它被卡住了。但同样,这不是这个问题的兴趣所在。

【问题讨论】:

    标签: kubernetes kubectl k3s


    【解决方案1】:

    如果您查看k8s documentation on pod-lifecycle,您会发现status.phase 只能有5 个不同的值,并且没有一个是Terminating。这意味着终止状态不会反映在该场中,因此通过相位场进行过滤是无用的。

    终止状态反映在.status.containerStatuses.state (container states in docs) 下,尽管过滤器似乎不支持此字段标签。


    那你能做什么?

    您可以做的最简单的事情是使用两次 grep:

    kubectl get pods | grep grafana | grep Running
    

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 2021-04-19
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      相关资源
      最近更新 更多