Google Container Engine stdout日志不显示

我的标准输出日志没有显示在Google日志查看器中,或者在使用kubectl logs <pod> 。 集群启用了云日志logging,并且每个节点上都运行了stream畅的容器。

Python代码示例:

 logger = logging.getLogger() logger.setLevel(logging.INFO) handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) logger.addHandler(handler) logger.info("test log") 

他们的文档中的“counter-pod”示例在我的集群上工作,所以fluentd容器正在拾取stdout并将其发送到Logs Viewer。

任何build议我应该尝试的事情? 提前致谢。

日志肯定会执行stdout,当运行kubectl logs <pod_name>时,它们不会显示出来。 它们也不会显示在Google日志查看器中。

这是因为发送到stdout的日志只有在来自Docker容器入口点的进程时才会被捕获。 在shell或通过cron作业完成的事情不会显示出来。

在我的情况下,我有一个调用脚本的cron作业。 通过运行脚本作为容器的入口点,日志显示正常。

如果运行kubectl logs pod时没有显示kubectl logs pod ,那么问题几乎可以肯定的是,应用程序中的日志不会输出stdout或stderr,所以这就是您应该关注的内容。

如果你的docker run本地docker run应用程序会发生什么? docker logs然后显示您所期望的日志? 这应该至less让你有一个更快的迭代周期来解决它的不同方法。