我有一个简单的 python 2.7 程序在 Kubernetes (AKS) 容器中运行,它将调试信息打印到标准输出
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
,输出为空(但我知道它很好,因为发布成功)。我尝试在 Dockerfile 中将 "-u"
添加到 CMD ["-u","syslog2la.py"]
,但没有帮助。如何在“kubectl日志”中获取python打印?
将以下内容添加到您的 Dockerfile 中:
ENV PYTHONUNBUFFERED=0
将其添加到您的 Dockerfile 中:
ENV PYTHONUNBUFFERED=1
归功于@frederix
这也是可能的:
只需将
all print
替换为 sys.stderr.write()
示例:
import sys
print(out_text)
sys.stderr.write(out_text + "\n")
最后请注意
\n
。