如何在 Kubernetes 中使用 tqdm
Posted
技术标签:
【中文标题】如何在 Kubernetes 中使用 tqdm【英文标题】:How to use tqdm in Kubernetes 【发布时间】:2021-01-01 00:46:26 【问题描述】:我正在使用 Kubernetes,并且在集群上运行了一个训练作业。 我使用 TQDM 作为进度条,但与我预期的不同,当我检查 Kubernetes Pod 日志时,进度条没有显示。有没有人可以解决这个问题?
【问题讨论】:
【参考方案1】:我没有一个好的解决方案,但是这个对我有帮助:
如果您使用,tqdm 进度条将按预期显示:
kubectl attach <pod_name>
代替:
kubectl logs <pod_name>
【讨论】:
【参考方案2】:不幸的是,到目前为止,我也没有找到令人满意的答案。例如,取决于您是使用 kubectl 还是 k9s,甚至是 tqdm 中可迭代的外观,或者您通过日志模块等记录的其他内容,结果可能与根本没有显示进度条、偶尔刷新几十次迭代。我发现获得一致的 kubernetes 日志的唯一方法是在每次迭代时自己打印它们并将 tqdm 输出重定向到其他地方。
例如如下:
import time
import sys
from tqdm import tqdm
iterator = tqdm(range(99), file=open("/dev/null", "w"))
for x in iterator:
print(iterator.__str__())
sys.stdout.flush()
time.sleep(0.2)
【讨论】:
以上是关于如何在 Kubernetes 中使用 tqdm的主要内容,如果未能解决你的问题,请参考以下文章
如何将 kubectl 命令用于在 Rancher 中使用 docker 运行的 kubernetes?
如何在 Kubernetes 中获取容器的磁盘使用情况(没有 docker 命令)?
如何在 kubernetes 中使用 windows 容器挂载卷?