我在AWS eks(托管kubernetes服务)的pod容器中运行了一个python脚本。我的脚本如下:
from model import startRunner
import time
while 1:
startRunner()
time.sleep(3600)
print("waited for 1 hour", flush=True)
我只在进程崩溃时获取日志。如果我不使用循环运行,我只在它崩溃或退出时获取日志。我的期望是在运行时刷新日志,而不是缓冲它。
我还在pod中添加了环境变量,如下所示(true是字符串,因为我还没有在kubernetes configmap的manifest中找到转换为boolean的方法):
PYTHONUNBUFFERED : true
此外,由于我正在使用conda运行脚本,因此我有以下命令来运行脚本:
CMD ["conda", "run", "-n", "pymc3_env", "python", "-u", "sqs-poll.py"]
在上面的命令中,我使用了-u
来取消缓冲日志,但是,它仍然在缓冲。
感觉就像,我的伎俩.我是一个纽比在python和使用python 3.5或以上运行脚本.如果有人能帮助我解决这个问题,那将是惊人的.提前感谢您的任何建议.
1条答案
按热度按时间wbgh16ku1#
尝试在脚本中转储
PYTHONUNBUFFERED
的值,使用以下命令如果你的脚本错误地说“missing key”之类的话,那么你就没有正确地将这个值传递给你的pod。
下面是从我自己的部署中截取的,它也运行了一个python脚本: