kubernetes - Kubernetes/Airflow Celery worker 任务因 SigKill 9 错误而失败,但没有解释(猜测 OOME?)
问题描述
我正在 Kubernetes 上测试 Airflow。目前,我正在运行一个简单的 DAG,并有目的地尝试使其崩溃,以查看运行内存密集型任务会发生什么。我的进程查询一个非常大的表,我试图生成内存不足 (OOM) 错误。我知道它正在发生,因为任务失败但我能看到的唯一日志给出了一个模糊的错误:
subprocess.CalledProcessError: Command '['/tmp/venvuydlj38n/bin/python', '/tmp/venvuydlj38n/script.py', '/tmp/venvuydlj38n/script.in', '/tmp/venvuydlj38n/script.out', '/tmp/venvuydlj38n/string_args.txt']' died with <Signals.SIGKILL: 9>.
这是我唯一看到的。Kubernetes 中也没有告诉我为什么。吊舱没有重新启动,我在kubectl get events
. 我不明白为什么 Kubernetes 不驱逐 Pod。从 Kubernetes 文档中,Kubernetes 应该杀死这个 pod 并重新安排它,但它看起来不像正在发生 - 但我的进程仍然收到 SigKill 9 错误。在这一点上,我知道这是一个 OOME,但是我想找到能够证实这一点的日志。如果我收到 Sigkill 9 错误,我想知道其他一些原因。
其他一些信息:我将 Celery worker 设置为 2GB 资源限制。
解决方案
要检查 pod 是否被 OOM 杀死,您可以kubectl describe
在资源上运行:
$ kubectl describe <pod_name>
...
State: Running
Started: Thu, 10 Oct 2019 11:14:13 +0200
Last State: Terminated
Reason: OOMKilled
Exit Code: 137
Started: Thu, 10 Oct 2019 11:04:03 +0200
Finished: Thu, 10 Oct 2019 11:14:11 +0200
...
推荐阅读
- django - Django Rest 框架抛出 IntegrityError。“creator_id”列中的空值违反非空约束
- r - 在 R 潜在变量分析中理解问题并得到错误 Lavaan 包
- api - 在小酒馆中出现错误“预计此文件中只有一个文档,但发现多个”
- c# - 如何在 C# 中使用 Microsoft Graph 库使用 $value
- swiftui - 形状不会重绘自身
- php - 在存档页面上显示产品的自定义字段值
- snowflake-cloud-data-platform - 如何获取特定用户的数据库列表
- javascript - 带有 Gatsby js 的 Scrollmagic 和部署时未定义的窗口
- python - RTSP 流在 python 上不起作用,但在 VLC 上起作用。为什么?
- excel - SeleniumBasic VBA TakeScreenshot 元素在屏幕截图之外的错误