为什么 `kubectl logs` 只显示最近的日志行?

Why does `kubectl logs` only show the most recent log rows?

我在 Google 容器引擎上有一个 Kubernetes pod 运行。已经运行好几天了,写日志,没有重启。

为什么命令 kubectl logs 只显示今天的日志行?

这个限制从何而来,是基于时间还是日志行数?

Logrotate 在容器引擎 VM 上默认启用。您应该能够在以下位置检查 conf 以获取 docker 容器日志。

cat /etc/logrotate.d/docker-containers

因此,当您 运行 kubectl logs 时,它会从当前日志文件中流式传输您。过去的日志已经被 gzip 压缩,并且根据 logrotate 配置只有 N 个压缩文件可用。

您可以检查位置 /var/log/containers 的所有容器日志文件,也可以符号链接到 /var/lib/docker/containers/$containerId/

您可能还想参考文档 http://kubernetes.io/docs/user-guide/kubectl/kubectl_logs/ 看看是否有其他选项可以解决问题。