Google Container Engine标准输出日志未显示

use*_*502 0 python docker kubernetes google-kubernetes-engine google-cloud-logging

我的标准输出日志未显示在Google Logs Viewer中或使用时kubectl logs <pod>。集群已启用云日志记录,并且流利的容器在每个节点上运行。

示例Python代码:

logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
logger.addHandler(handler)
logger.info("test log")
Run Code Online (Sandbox Code Playgroud)

他们的文档中的“ counter-pod”示例确实可以在我的集群上运行,因此流利的容器将拾取stdout并将其发送到Logs Viewer。

对我应该尝试的事情有什么建议吗?提前致谢。

use*_*502 5

日志肯定要输出,它们只是在运行时不显示kubectl logs <pod_name>。它们也不会显示在Google Logs Viewer中。

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

在我的情况下,我有一份计划工作,正在调用脚本。通过将脚本作为容器的入口点运行,日志可以正常显示。