【发布时间】:2017-01-16 16:57:19
【问题描述】:
我有一个在 Google Container Engine 上运行的 Kubernetes pod。它已经运行了几天,写入日志,没有任何重新启动。
为什么命令kubectl logs 只显示今天的日志行?
这个限制来自哪里,是基于时间还是日志行数?
【问题讨论】:
标签: kubernetes google-cloud-platform google-kubernetes-engine kubectl
我有一个在 Google Container Engine 上运行的 Kubernetes pod。它已经运行了几天,写入日志,没有任何重新启动。
为什么命令kubectl logs 只显示今天的日志行?
这个限制来自哪里,是基于时间还是日志行数?
【问题讨论】:
标签: kubernetes google-cloud-platform google-kubernetes-engine kubectl
在容器引擎虚拟机上默认启用 Logrotate。您应该能够在以下位置检查 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/,看看是否有其他选项可以挽救。
【讨论】: