AKS Kubectl 命令未返回已完成的 Pod

AKS Kubectl 命令未返回已完成的 Pod

我正在使用带有 Kubernetes v1.25.6 的 AKS,并且我开始看到许多具有“已完成”状态的 Pod。据我所知,这些是在 Pod 正在运行的进程上返回退出 0 代码时生成的,这对于有问题的 Pod 来说毫无意义。我还觉得完成状态允许我使用以下命令:kubectl 日志 podname回顾一下为什么 pod “完成”。

但是,我被告知找不到该资源。因此,我决定使用诊断设置从 AKS 设置登录到存储帐户,看看是否可以从那里找到数据。

所以我的下一步是基本上清理所有已完成的 pod,并且我看到给出了以下命令:

kubectl delete pod --field-selector=status.phase==Succeeded

我将此命令更新为以下内容(查看在交换到删除之前会选择什么)

kubectl get pod --field-selector=status.phase==Completed

然而,尽管 kubectl get pod 命令显示了近 20 个已完成的 pod,但我被告知“未找到资源”。

如果我将命令改为:

kubectl get pod --field-selector=status.phase==Running

我看到了所有正在运行的 Pod。为什么这对已完成的 Pod 不起作用?这是 AKS 问题还是命令不正确?

答案1

因此事实证明“完成”被认为是失败而不是成功,这似乎不太直观,因为完成并不意味着错误或失败。

更改为

kubectl get pod --field-selector=status.phase==Failed

返回受影响的 pod(包括其他“失败”的 pod)。这足以让我进行清理,但不允许我出于其他原因专门单独选择“已完成”,但它尽可能接近我需要的。

相关内容