问题标签 [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.
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 日志中:
它一直在运行
有任何想法吗?
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 ”之前应用的内容。
有人可以帮我找出问题所在吗?
谢谢你。
基普利科
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。
即使尝试直接设置imagePullSecrets
,airflow.cfg
我仍然会得到同样的错误。
我还尝试使用 V1 api 显式创建 pod 覆盖,如下所示:
在这种情况下,我可以正确下载要使用的 docker 映像,而不会出现任何身份验证错误。但不幸的是,pod 抛出了一个错误:AttributeError: 'V1Container' object has no attribute '_startup_probe'
airflow - Airflow KubernetesExecutor / 未能采用 pod
我们正在使用气流 kubernetes 执行器,并且在大多数情况下它工作得很好。虽然通常 pod 在完成任务后会终止并消失,但有时会发生“某些事情”,这些已完成的 pod 最终会永远存在。或者直到我们手动杀死它们。
当我查看我们的日志时,对于这些卡住的 pod,我看到一个又一个条目,如下所示:
我似乎找不到某些 pod 工作正常而其他 pod 卡住的任何押韵或原因。所有 DAG 和任务都会随机发生这种情况。
非常感谢您的帮助。
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 文件中可能的每个参数好几天了,但仍然被困在这个问题上?
这与远程日志记录无关,因为我什至无法访问本地日志记录。
airflow - Web 服务器和工作人员的图像
在气流中,我们使用的是 Kubernetes Executor,我们可以为 webserver 和 worker pod 使用单独的图像吗?如果我使用的是包含 DAG 的所有库的单独映像,但这些依赖项不存在于网络服务器使用的映像中,因为该网络服务器给出了未找到模块的错误。