查找之前 Pod 的日志

时间:2021-03-08 12:52:01

标签: kubernetes

我们遇到了系统中断,服务没有响应,我使用 kubectl rollout restart sts myservice 重新启动了该服务并且它起作用了。但是,我想查看日志以了解问题的原因。当我尝试 kubect logs --previous myservice-0 时,它说“未找到 pod“myservice-0”中先前终止的容器“mycontainer”。有没有办法在重启前找到日志?我试图查看死掉的 docker 容器 (docker ps -a),有 6 个月前退出的容器,但我的服务没有最近退出的容器,为什么会这样?

1 个答案:

答案 0 :(得分:1)

我建议阅读以下内容:The Complete Guide to Kubernetes Logging

<块引用>

在 Kubernetes 中,当 pod 被驱逐、崩溃、删除或调度时 在另一个节点上,容器中的日志消失了。系统 自行清理。因此,您会丢失有关原因的任何信息 异常发生。

另外,根据Logging Architecture

<块引用>

如果您想在容器崩溃时访问应用程序的日志;一种 pod 被驱逐;或者一个节点死了,[...] 你需要一个单独的后端来 存储、分析和查询日志。 Kubernetes 不提供本机 日志数据的存储解决方案。相反,有许多日志记录 与 Kubernetes 集成的解决方案。

这些日志聚合解决方案的一些示例是:

  • ELK Stack(Elasticsearch、Logstash、Kibana)
  • EFK Stack(Elasticsearch、Fluentd、Kibana)