我有一个Kubeflow管道,它的第一步除了下载一个文件之外什么也不做。此步骤始终会因内存不足错误而崩溃:
此步骤处于错误状态,并显示以下消息:OOMKilled(退出代码137)
为了获得保证的QoS,我将内存限制和请求设置为4G,将CPU限制和请求设置为1。但是,这只是“主”容器。pod也有 init 和 wait 容器。它们运行argoexec init
和argoexec wait
命令并请求以下资源:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 10m
memory: 32Mi
字符串
令我惊讶的是,当我在Google Cloud控制台中查看pod时,它是已被OOMKilled的 wait 容器。有没有可能为 wait 容器设置资源限制和请求,或者有没有其他方法来解决这个问题?
1条答案
按热度按时间fzwojiic1#
我想我找到了OOM错误的原因。组件将下载的文件保存为输出工件。
argoexec wait
可能在组件完成后运行,并处理与将输出工件传递到下一个管道步骤相关的事情。问题是下一个组件试图使用工件的值,而不是它的路径。在使用下载组件输出的组件的YAML规范中,我将inputValue
替换为inputPath
后,错误消失了。