为气流将创建的Pod分配内存限制并限制其在kubernetes中运行任务

问题描述

我已经部署了具有头盔稳定/气流的气流:https://github.com/helm/charts/tree/master/stable/airflow

我已将其与celery executor一起部署,并且运行了需要读取一张大桌子的任务。我在运行此任务的Pod中收到此错误:

The node was low on resource: memory. Container base was using 3642536Ki,which exceeds its request of 0.
I understand that I have exceed the memory of the node is running this pod.

我要修改内存限制,并限制每个Pod在气流中使用的CPU。我看到我可以限制工人的资源。

我的问题是:

如何指定内存请求,即将要从工作程序创建的Pod的限制?因为我只能看到如何设置工人的资源,而不能看到工人创建的花盆。

解决方法

我认为您可能会将Celery Executor与Kubernetes Executor混为一谈。 Kubernetes执行器为每个任务实例创建一个新的Pod。使用Celery Executor,您将获得预设数量的工作人员吊舱来运行任务。例如,您将提前设置工人数here。在这种情况下,设置these values应该为您的工作人员提供所需的资源。他们的自述文件很好地说明了您追求的是如何利用动态缩放。

enter image description here

,

您可以通过修改头盔图表中的values.yaml为调度程序指定资源。

您可以通过以下方式在本地拉动图表来完成此操作:

helm fetch --untar stable/airflow

然后在values.yaml中修改scheduler:resources文件,例如:

 163 scheduler:
 164   resources:
 165      requests:
 166        cpu: "100m"
 167        memory: "1Gi"
 168      limits:
 169        cpu: "100m"
 170        memory: "1Gi"

然后安装图表helm install airflow .,指定的资源将分配给pod。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...