问题标签 [kubernetesexecutor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
42 浏览

airflow - Airflow:如何使用 KubernetesExecutor 发送 email_on_failure?

我在 kubernetes 集群上运行气流(v1.10.14),每个任务都使用 KubernetesExecutor 运行(env var AIRFLOW__CORE__EXECUTOR:“KubernetesExecutor”)并且想在失败时发送电子邮件,所以我生成了一些故意失败的东西测试...但是当我'email_on_failure': True在我的 dag 气流日志上设置报告失败但邮件从未发送时,任务永远在进行中,并且执行程序创建的 kubernetes pod 不会死...当设置为False一切按预期失败时(任务标记为失败,pod 死亡)

我没有在气流和 kubernetes 日志或事件上获得相关日志。

我正在通过环境变量(AIRFLOW__SMTP__SMTP_HOST、AIRFLOW__SMTP__SMTP_MAIL_FROM、AIRFLOW__SMTP__SMTP_USER 和 AIRFLOW__SMTP__SMTP_PASSWORD)将 SMTP 设置为 Web 服务器和调度程序,但我的猜测是 kubernetes 执行程序可能正在尝试发送此邮件并且没有所需的信息(尽管我做到了怎么找不到)?

这是我的简单 dag 的代码:

在 Airflow 的任务日志中,我得到:

但是 dag 仍然处于“运行”状态,尽管它说它正在将其标记为 FAILED

在我得到的 pod 的 kubernetes 日志中:

它一直在运行

有任何想法吗?

0 投票
0 回答
171 浏览

airflow - Airflow Kubernetes Executor 错误(找不到 dag_id)

我正在尝试使用 Airflow 迈出第一步(我决定从发布的最新版本2.1.0开始)。

您可以在下面找到我执行的步骤。
我想指定我正在使用 Minikube 在本地运行测试。

我已经开始使用以下 Dockerfile 构建我的自定义映像:

入口点脚本只需启动两个进程调度程序和网络服务器。

并使用以下气流.cfg文件。

与部署相关,正如我之前所说,我将 minikube 与以下 yaml 文件一起使用。

PersistentVolume 和 PersistentVolumeClaim “ airflow-dags-git ”之前已经使用另一个文件创建

当我尝试触发一个简单的 DAG 时,pod 被实例化但立即失败。特别是我收到以下错误:“ airflow.exceptions.AirflowException:dag_id 找不到:tuto。dag 不存在或无法解析。

通过kubectl describe分析结构,我注意到 pod 没有包含 DAG 的卷。

此外,虽然我期待的是找到我在“ airflow-dags-git ”之前应用的内容。

有人可以帮我找出问题所在吗?

谢谢你。

基普利科

0 投票
1 回答
694 浏览

kubernetes - Airflow 2.0.1:Pod 模板覆盖无法按预期为 KubernetesExecutor 工作

设置:带有 Kubernetes 1.18 和 Python 3.8 的 Airflow 2.0.1,Kubernetes 客户端:18.17.x

Pod 模板文件:

在airflow.cfg 中设置的默认配置如下:

问题是,例如,虽然从 pod_template_file 中正确读取了某些键,但我可以看到所有键都被正确env variables设置以及imagePullPolicy被正确读取(通过覆盖imagePullPolicy: "Always"from的值来验证imagePullPolicy: "IfNotPresent"),但键imagePullSecrets不是被正确阅读。我可以验证这一点,因为Base credentials not provided从 ecr 存储库中提取图像时出现错误。我已经验证了凭据是正确的,并且我可以在尝试明确创建一个 pod 时创建一个 pod。

即使尝试直接设置imagePullSecretsairflow.cfg我仍然会得到同样的错误。

我还尝试使用 V1 api 显式创建 pod 覆盖,如下所示:

在这种情况下,我可以正确下载要使用的 docker 映像,而不会出现任何身份验证错误。但不幸的是,pod 抛出了一个错误:AttributeError: 'V1Container' object has no attribute '_startup_probe'

0 投票
0 回答
64 浏览

airflow - Airflow KubernetesExecutor / 未能采用 pod

我们正在使用气流 kubernetes 执行器,并且在大多数情况下它工作得很好。虽然通常 pod 在完成任务后会终止并消失,但有时会发生“某些事情”,这些已完成的 pod 最终会永远存在。或者直到我们手动杀死它们。

当我查看我们的日志时,对于这些卡住的 pod,我看到一个又一个条目,如下所示:

我似乎找不到某些 pod 工作正常而其他 pod 卡住的任何押韵或原因。所有 DAG 和任务都会随机发生这种情况。

非常感谢您的帮助。

0 投票
0 回答
36 浏览

kubernetes - 排队后气流不会记录日志

我已经使用 KubernetesExecutor 在 Kubernetes 上部署了 Airflow。在我尝试获取日志之前,一切似乎都运行良好。UI 确实向我显示了日志,但实际上并没有写入完整的日志。对于我执行的每个任务,使用尽可能多的打印语句,日志只会显示到排队状态,也就是说,我看不到任何记录的消息。我尝试过使用常见的打印语句以及日志导入。此外,我尝试使用不同的 Helm 图表,并且在所有这些图表中我得到相同的结果。从 Kubernetes pod 本身读取日志​​给了我与气流 UI 相同的结果。

[2021-08-16 21:47:44,062] {dagbag.py:448} INFO - 从 /home/airflow/.local/lib/python3.8/site-packages/airflow/example_dags/example_bash_operator 填充 DagBag。 py 在主机 examplebashoperatorrunme1.6ef611f7e3c143d2a7a1df5e91984a82 上运行 <TaskInstance: example_bash_operator.runme_1 2021-08-16T21:47:15.407072+00:00 [queued]>

这是完整的日志。POD 成功终止,一切似乎都正常,而不是日志。有人可以帮助我,因为我已经尝试了 yaml 文件中可能的每个参数好几天了,但仍然被困在这个问题上?

这与远程日志记录无关,因为我什至无法访问本地日志记录。

0 投票
0 回答
97 浏览

kubernetes - 如何在气流中使用 KubernetesExecutor 时设置默认图像

  1. 我正在使用KubernetesExecutor.
  2. 配置
  1. pod_template_file
  1. 当我运行 dag 时,我在 Kubernetes 中得到了这个。其他设置都很好。只有图像设置不起作用。
    在此处输入图像描述

如果我用 指定 dag 运算符的图像pod_override,它可以工作。但这不是我想要的。我想通过配置设置默认图像。我怎么能那样做?

(Stackoverflow 想要更多的词...blahblah...bl...ah...blah....)

0 投票
0 回答
14 浏览

airflow - Web 服务器和工作人员的图像

在气流中,我们使用的是 Kubernetes Executor,我们可以为 webserver 和 worker pod 使用单独的图像吗?如果我使用的是包含 DAG 的所有库的单独映像,但这些依赖项不存在于网络服务器使用的映像中,因为该网络服务器给出了未找到模块的错误。