kubernetes - 如何使用 kubernetes 执行程序为 airflow worker pod 全局设置 request_cpu?

标签 kubernetes airflow

我正在尝试在 Airflow 的 Kubernetes 执行器中设置 request_cpu 参数,但一直无法找到可以执行此操作的位置。在default airflow config我找到了 default_cpus 但根据 this answer没有任何地方使用它,在 Kubernetes 部分的其他任何地方我都找不到对 CPU 请求的引用。

如何在 Airflow Kubernetes 执行器中设置 request_cpu 参数?

编辑: 理想情况下,我希望能够做的是将其设置为全局默认值而不是基于每个运算符(operator),尽管通常我认为按运算符(operator)/任务设置它确实更有意义

最佳答案

您可以在任务级别为 KubernetesExecutor 设置此 executor_config,如下所示。

    exmaple_task = PythonOperator(
        task_id="exmaple_task",
        python_callable=print_stuff,
        executor_config={
            "KubernetesExecutor": {"request_cpu": "1",
                                   "request_memory": "128Mi",
                                   "limit_memory": "128Mi"}}
    )

您可以在 executor_config 中定义以下内容:

  • 图片
  • image_pull_policy
  • 请求内存
  • request_cpu
  • 限制内存
  • limit_cpu
  • 限制GPU
  • 节点选择器
  • 亲和性
  • 容忍度
  • 注释
  • 数量
  • volume_mounts
  • volume_mounts

文档:https://airflow.apache.org/docs/1.10.9/_api/airflow/contrib/executors/kubernetes_executor/index.html#airflow.contrib.executors.kubernetes_executor.KubernetesExecutorConfig

关于kubernetes - 如何使用 kubernetes 执行程序为 airflow worker pod 全局设置 request_cpu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60443124/

相关文章:

python - DAG 在 Google Cloud Composer 网络服务器上不可点击,但在本地 Airflow 上运行良好

python - Airflow 运算符(operator)是否需要返回任何内容才能正常运行?

docker - 如何避免多个计划任务并行运行

python - 用于缩放的 OpenShift REST API,无效字符 's' 正在寻找值的开头

mysql - 在Kubernetes中是否可以为MySQL提供基于主机名的路由?

amazon-s3 - S3_delete_objects_operator 不删除bucket中的文件

google-cloud-dataproc - 提供自定义 UUID 以通过 Airflow DataprocSubmitJobOperator 启 Action 业

go - 无法检测到 Kubernetes 中的 tcp 服务没有带有 golang 应用程序的 pod

kubernetes - kubectl 只为一个 pod 获取事件

python - 如何获取 Airflow dag 运行的 JobID?