打印未被 Kubernetes 记录

Printing not being logged by Kubernetes

我在 Kubernetes (AKS) 的容器中有简单的 python 2.7 程序 运行,它正在将调试信息打印到标准输出

response = requests.post(uri,data=body, headers=headers)
if (response.status_code >= 200 and response.status_code <= 299):
    print 'Accepted ' + log_type + ' on ' + rfc1123date
else:
    print "Response code: {}".format(response.status_code)

我没有看到 kubectl logs container_name,输出是空的(但我知道它很好,因为成功 post)。我试图在 Dockerfile 中将 "-u" 添加到 CMD ["-u","syslog2la.py"],但没有帮助。如何在'kubectl logs'中获取python打印?

将以下内容添加到您的 Dockerfile 中:

ENV PYTHONUNBUFFERED=0