我有一个在 Google Container Engine 上运行的 Kubernetes pod。它已经运行了几天,写入日志,没有任何重新启动。
为什么该命令kubectl logs只显示今天的日志行?
这个限制来自哪里,它是基于时间还是日志行数?
我有一个在 Google Container Engine 上运行的 Kubernetes pod。它已经运行了几天,写入日志,没有任何重新启动。
为什么该命令kubectl logs只显示今天的日志行?
这个限制来自哪里,它是基于时间还是日志行数?
默认情况下,在容器引擎 VM 上启用 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/看看是否有其他选项可以拯救。