【问题标题】:Troubleshooting why my pod is deleted in kubernete cluster排查为什么我的 pod 在 Kubernetes 集群中被删除
【发布时间】:2018-06-10 00:06:35
【问题描述】:

我创建了一个部署,它创建了一个副本集,这个副本集创建了 pod。现在我发现 pod 被删除了几次(不知道为什么),然后副本集创建了一个新的 pod。

我无法找到上一个 pod 的详细信息。我需要知道为什么 pod 被删除了。 Kubernetes 服务器版本 1.5.6。我也没有看到任何事件。而我可以在较新版本的 Kubernetes 服务器中看到一些事件。

如果需要更多信息,请告诉我。

我在这里给出了一个简单的用例,我创建了一个部署,然后删除了其中的 pod:

[kubernate-test]$ kubectl run pod-deleted-reason-why --image=busybox  -- sh -c 'while true; do echo i am running, but not sure can fail any time;sleep 10;done'
deployment "pod-deleted-reason-why" created
[kubernate-test]$ kubectl get deployments |grep reason
pod-deleted-reason-why    1         1         1            1           32s
[kubernate-test]$ kubectl get replicaset |grep reason
pod-deleted-reason-why-59c9df7594    1         1         1         59s
[kubernate-test]$ kubectl get pods |grep reason
pod-deleted-reason-why-59c9df7594-nr8rs    1/1       Running            0          1m
[kubernate-test]$ kubectl delete pod pod-deleted-reason-why-59c9df7594-nr8rs
pod "pod-deleted-reason-why-59c9df7594-nr8rs" deleted
[kubernate-test]$ kubectl get pods |grep reason
pod-deleted-reason-why-59c9df7594-qpq5b    1/1       Running            0          1m

这里我手动删除了 pod - pod-deleted-reason-why-59c9df7594-nr8rs 并且副本集创建了一个新的 pod - pod-deleted-reason-why-59c9df7594-qpq5b

如果 pod 因其他原因被删除(比如节点重启),我怎么知道 pod 被删除的原因?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您可以使用kubectl describe pod ...查看更多信息

    编辑:

    更正,我没有意识到您自己删除了一些东西,如果您手动删除 pod,我认为您无法取回该信息。如果 pod 已经存在,然后有人将其删除,那么发生的唯一方法就是您实际删除它。如果它因某种原因重新启动,则 pod 名称保持不变。

    【讨论】:

      【解决方案2】:

      描述 pod 是要走的路。我每天都看到这样的事情。每次我启动一个新部署时,我都会使用kubectl get pods 列出 pod,然后一旦我看到容器正在为我想要监控的新 pod 创建消息,我就获取 id 然后运行kubectl describe pod [ID]。即使 pod 被替换为新的,您仍然可以看到退出错误。你也可以kubectl logs [ID]查看更多信息。

      【讨论】:

        【解决方案3】:

        You can display detailed information about a pod that no longer exists 使用

        kubectl get pod --output=yaml
        

        输出包括一个 lastState 字段,其中包含有关 pod 的最后状态的信息。

         apiVersion: v1
         kind: Pod
         ...
             lastState:
               terminated:
                 containerID: ...
                 exitCode: 0
                 finishedAt: ...
                 message: ...
                 ...
        

        您还可以使用kubectl logs -p 获取 pod 中容器实例的日志。

        【讨论】:

        • 我觉得 status.containerStatuses.lastState 是针对 pod 内的容器状态。我正在寻找如何获取已删除的 pod 详细信息(可能是由于部署升级或运行 pod 的节点故障)。
        猜你喜欢
        • 2022-07-22
        • 2018-12-20
        • 1970-01-01
        • 2019-12-31
        • 2019-05-05
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多