因此,我制作了一个非常简单的基于烧瓶的应用程序,并将其托管在kubernetes吊舱中
当我在Rancher中打开日志时,我可以看到以下警告:
* Serving Flask app "app/preapproved_limits/api.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
我在本地机器上启动烧瓶时也会看到
但我在本地机器上看不到,在Rancher上也确实看到:
10.0.67.20 - - [02/Jul/2020 16:49:20] "GET /health HTTP/1.1" 200 -
INFO:werkzeug:10.0.67.20 - - [02/Jul/2020 16:49:20] "GET /health HTTP/1.1" 200 -
每5秒记录一次。 怎么回事
但是最重要和恼人的是,我看不到我用Python的print()
函数生成的日志
谁能解释一下:
/health
是k8s需要的正常healthcheck端点默认情况下,Flask不会打印到标准输出,因为它会缓冲行以提高I/O效率。您可以调用
sys.stdout.flush()
、print(flush=True)
、在Dockerfile中设置env varPYTHONUNBUFFERED=1
(可能是最简单的),或者像我们应该做的那样使用logging
模块您可以阅读有关此环境变量here的更多信息
相关问题 更多 >
编程相关推荐