确定 kubernetes pod 重启的原因

Let*_*_Be 1 c++ docker kubernetes

我在 Kubernetes 部署方面遇到了问题。最近我们遇到了一个问题,其中一个 pod 频繁重启。

里面的服务使用 C++,带有 Google Logging,并且应该在崩溃时转储堆栈跟踪(在本地运行时确实会这样做)。

不幸的是,我能找到的与 Pod 重启相关的唯一日志消息来自containerd,只是说“shim reaped”。

我是否需要打开一些额外的日志记录/监控才能保留重新启动的原因?

hoq*_*que 6

您可以通过运行来检查崩溃的 Pod 日志

$ kubectl logs -f <pod name> -n <namespace> --previous
Run Code Online (Sandbox Code Playgroud)


oct*_*pus 6

Pod 可能因内存不足等原因而被终止。使用kubectl describe pod <podname>其中包含的信息。

应该有这样的输出(也可能是与 OOM 不同的原因):

    Last State:     Terminated
      Reason:       OOMKilled
Run Code Online (Sandbox Code Playgroud)