如何在Kubernetes中使Jupyter Notebook内核抛出内存不足错误

9

我正在通过Kubernetes集群提供jupyter笔记本服务。 我已经设置了resources.limits,以防止有人耗尽主机服务器的内存。

一个问题是,在容器超过内存限制后,jupyter笔记本核心程序可能会崩溃并自动重启,但不会抛出任何OOM(Out of Memory)错误,这将使用户非常困惑。

那么,我如何在Kubernetes上运行jupyter笔记本时触发OOM错误呢?


很遗憾,你所提出的问题不够清晰。请问您是否正在寻找 Kubernetes 内部的解决方案?您是否正在寻找一种解决方案,可以向您显示包含 Jupyter Notebook 的 Pod 已被 OOM 杀死的消息?或者您想以某种方式通知用户它被杀死是因为内存限制?还是您正在寻找一种解决方案,可以防止 Pod 因 OOM 被杀死? - aurelius
谢谢您的建议。我确实想寻找一种解决方案来显示一个消息,即包含Jupyter Notebook的Pod已被OOM杀死。我已经更新了我的问题。 - aisensiy
请纠正我,但您的问题应该是 - 我如何通知用户相应内核存在问题。 - Michał Zaborowski
2个回答

4
如果您只有一个特定的Pod,您可以像这里一样监控事件/日志:
kubectl get events --watch 
kubectl logs -f podname

话虽如此,但并非所有Pod生命周期中的事件都能得到正确的报告,正如kubernetes/kubernetes问题38532和(已废弃的)PR 45682所示。
但是,在docker inspect查看Pod时,您仍应该看到OOMKilled:true


那我还是无法让Python抛出OOM错误吗? - aisensiy
@aisensiy Python 可能会抛出 OOM,但你需要测试一下 Docker inspect 是否会像我在答案的最后部分提到的那样报告它。 - VonC

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接