【问题标题】:Printing not being logged by KubernetesKubernetes 未记录打印
【发布时间】:2019-02-08 17:28:46
【问题描述】:

我有一个简单的 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 logs”中获取 python 打印?

【问题讨论】:

    标签: python logging kubernetes python-2.x kubectl


    【解决方案1】:

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

    ENV PYTHONUNBUFFERED=0
    

    【讨论】:

    • 作为旁注,您还可以使用“-u”标志启动 python 以实现无缓冲输出。例如。 /bin/python3 -u /path/to/script.py
    • PYTHONUNBUFFERED=1 为我工作。 PYTHONUNBUFFERED=0 没有。
    猜你喜欢
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多