【问题标题】:Can I get container logs older than one restart ago?我可以获得比一次重启前更旧的容器日志吗?
【发布时间】:2021-07-26 10:26:28
【问题描述】:

我正在编写一个测试来捕捉容器在 5 分钟后失败的情况。一旦崩溃,它会重新启动。因此,如果我等待 16 分钟,它将崩溃 3 次。

我知道我可以看到当前容器的日志,例如:

$ kubectl logs podname containername
    service starting at 00:15
    service happy

我可以看到以前容器的日志,例如:

kubectl logs --previous podname containername
    service starting at 00:10
    service happy
    service sad
    service CRASHED

但是我可以获取比一次重启前更早的容器的日志吗?比如:

kubectl logs --all-previous podname containername # <-- no such command
    service starting at 00:00
    service happy
    service sad
    service CRASHED
    ----
    service starting at 00:05
    service happy
    service sad
    service CRASHED
    ----
    service starting at 00:10
    service happy
    service sad
    service CRASHED
    ----
    service starting at 00:15
    service happy

如果我的测试检测到它已经完全崩溃了,我想捕获能够讲述整个故事的日志,而不仅仅是之前的崩溃。

如果没有可以为我汇总日志的命令,那么我至少可以一次找到一个日志以便我自己汇总它们吗?如果是这样,我会去哪里看?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    容器必须存在于底层运行时才能获取日志,并由 kubernetes 清理。

    fluentd 这样的日志聚合器是将日志从每个容器运行时收集到中心位置的标准方法。您可以将日志写入简单的file 以避免大型摄取系统并使用jq 进行查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多