问题标签 [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.
kubernetes - Airflow 无法识别我的 S3 连接设置
我正在将 Airflow 与 Kubernetes 执行程序一起使用并在本地进行测试(使用 minikube),虽然我能够启动并运行它,但我似乎无法将我的日志存储在 S3 中。我已经尝试了所有描述的解决方案,但仍然出现以下错误,
我实现了这个答案中提到的自定义 Logging 类,但仍然没有运气。
- 我使用 Puckel 气流 1.10.9
- 来自图表/稳定/气流/的气流的稳定 Helm 图表
我的airflow.yaml
长相是这样的
我已经尝试通过 UI 设置连接并通过创建连接airflow.yaml
,但似乎没有任何效果,我已经尝试了 3 天,但没有运气,任何帮助将不胜感激。
我附上了截图供参考,
airflow - 使用 KubernetesExecutor 将 ConfigMap 挂载到 Airflow Worker Pod
我有一个场景,我想使用 Helm 来部署使用 KubernetesExecutor 的每个环境 Airflow 配置。
我遇到的问题是,当 KubernetesExecutor 生成它们时,我需要在 Worker Pod 中为每个环境 ConfigMaps 挂载调度程序。
我在 Web 和调度程序 pod 中很好地安装了这些 ConfigMap,但我没有看到告诉 KubernetesExecutor 安装特定 ConfigMap 的方法。
我在文档中没有看到如何做到这一点,但我不是唯一一个希望他们的 Docker 映像与环境无关并将所有内容抽象到 Helm 级别的人。
我们欢迎所有的建议 :)
谢谢!
kubernetes - pod_mutation_hook 函数不适用于使用 KubernetesExecutor 在 kubernetes 中运行的气流
我正在尝试将在 kubernetes 中运行的气流部署CeleryExecutor
从KubernetesExecutor
. 在我的本地开发环境中一切都很顺利(在 minikube 上运行),但是我需要在生产中加载一个 sidecar 容器来运行允许我连接到我的 sql 数据库的代理。经过一番谷歌搜索后,似乎在某处的文件中定义pod_mutation_hook函数是应该如何完成此任务的。airflow_local_settings.py
$PYTHONPATH
首先,我尝试根据此示例在配置映射中定义它。例如
我在文件中指定了这个 configmap airflow.cfg
,它被拾取并正常安装,所有其他 env 变量都正常工作,但pod_mutation_hook
似乎没有运行,因为 kubernetes 执行程序启动的结果 pod 中没有添加任何标签(请注意日志此处还指定了卷声明,并且可以正常工作)。
接下来,我尝试按照此处的评论中的建议在airflow_local_settings.py
图像中定义气流正在为工作启动的文件。我还从上面的配置图中删除了相关部分。这似乎也对为作业创建的结果 pod 没有影响,因为它也缺少指定的标签。$AIRFLOW_HOME/configs/airflow_local_settings.py
airflow-config
所以,我不确定此时如何进行,因为我不明白我应该如何指定airflow_local_settings.py
文件和pod_mutation_hook
函数,以便它们在运行之前实际改变 pod。任何帮助将不胜感激。谢谢你。
kubernetes - 使用 kubernetes 执行器时找不到 Airflow-dag_id 问题
我正在使用气流稳定的掌舵图并使用 Kubernetes Executor,正在为 dag 安排新的 pod,但找不到 dag_id 失败的问题。我正在使用 git-sync 来获取 dags。以下是错误和 kubernetes 配置值。有人可以帮我解决这个问题吗?
错误:
配置:
采样标签
kubernetes - 无法使用 KubernetesExecutor 运行 Airflow DAG - AirflowException:找不到 dag_id
我是 Airflow 的新手,现在一直在尝试使用 KubernetesPodOperator 类运行任务,但没有任何运气。pod 被创建并从 git repo 同步 DAG,我没有看到检索 DAG 的任何错误,但 pod 很快失败并出现以下错误:
我正在使用 Helm 在 EKS 上部署 Airflow 1.10.10。下面是我的气流配置文件。我注意到这与 Airflow 的问题相同——使用 kubernetes 执行程序时找不到 dag_id 问题,我尝试了不同的组合AIRFLOW__KUBERNETES__GIT_DAGS_FOLDER_MOUNT_POINT
但AIRFLOW__KUBERNETES__GIT_SYNC_ROOT
没有运气。
有任何想法吗?我完全被困住了。
python - Airflow Unittest.cfg 权限问题?
所以,我在 EKS 上设置 Airflow。
除了我无法使用 KubernetesExecutor 之外,一切似乎都已准备就绪。每次我尝试使用它时,我都会收到此错误:
使用 open(TEST_CONFIG_FILE, 'w') as f: PermissionError: [Errno 13] Permission denied: '/usr/local/airflow/unittests.cfg'
我试过进入豆荚和chmod
文件chown
。我在 docker 映像中尝试了相同的操作,还尝试创建unitttests.cfg
文件,并将其从本地复制到映像。它们都返回相同的错误。
Docker镜像:
狗屎:
正如你所看到的,dag 实际上只是一个测试,但我已经在这里停留了一段时间。
kubernetes - Airflow Kubernetes Executor 是否运行任何算子?
我正在评估我当前的 Airflow 部署从 Celery 执行器到 Kubernetes (K8s) 执行器的迁移,以利用资源的动态分配和 Pod 提供的任务的隔离。
我很清楚,我们可以使用原生 KubernetesPodOperator 通过 K8s 执行器在 K8s 集群上运行任务。但是,我找不到有关 K8s 执行器与其他运算符(例如 bash 和 athena)之间兼容性的信息。
这里的问题是是否可以在 K8s 驱动的 Airflow 上运行 bash(或任何其他)操作员,或者我应该将所有任务迁移到 KubernetesPodOperator?
谢谢!
kubernetes - 在 KubernetesExecutor 上运行气流时出现气流错误“找不到 dag_id”
我正在使用这个舵图来部署气流https://github.com/apache/airflow/tree/master/chart
阿帕奇气流版本:2.0.0
Kubernetes 版本:v1.19.4
发生了什么:尝试使用 kubernetes 执行任务时出现此错误
如何重现它:使用这个 values.yaml 部署气流舵图:
这就是它的任务
这是airflow.cfg 文件
这是新任务的 pod yaml 文件
- - - - - - - - - - - -重要的 - - - - - - - - - - - - - --
调试
出于调试目的,我更改了 pod args 而不是运行任务,我运行它
并试图寻找 Dags ,但没有找到。似乎 gitSync 不适用于 kubernetesExecutor 触发的 pod。
请问有什么帮助吗???
logging - Airflow KubernetesExecutor,在执行程序 pod 完成之前,日志不会显示在 UI 中
我已经开始使用 KubernetesExecutor,并且我已经设置了一个带有 AWS EFS 的 PV/PVC 来为我的 dag 存储日志。我也在使用 s3 远程日志记录。
dag 完成后,所有日志记录都运行良好。但是,我希望能够看到我的作业的日志,因为它们正在运行长时间运行的作业。
当我执行到我的调度程序 pod 时,当执行程序 pod 正在运行时,由于共享 EFS,我能够看到.log
当前正在运行的作业的文件。但是,当我cat
查看日志文件时,只要执行程序仍在运行,我就看不到日志。但是,一旦执行程序完成,我可以cat
在文件和气流 UI 中看到完整的日志。
另一方面,奇怪的是,当我在执行程序 pod 运行时执行它,并且我cat
在共享 EFS 中的日志文件完全相同时,我能够在作业中看到正确的日志,当我立即cat
从调度程序或检查 UI,我还可以看到直到那时的日志。
因此,似乎当我cat
在执行程序 pod 中时,它会导致日志以某种方式被刷新,以便它在任何地方都可用。为什么日志没有定期刷新?
这是我正在设置的配置变量,请注意这些环境变量是在我的 webserver/scheduler 和 executor pod 中设置的:
我的日志配置看起来像这里的问题
我认为这可能是添加的 python 缓冲问题PYTHONUNBUFFERED=1
,但这并没有帮助。无论我使用PythonOperator
orBashOperator
是不是 K8sExecutors 日志在运行时不可用?仅在那之后?或者是否有一些我必须缺少的配置?
kubernetes - 在 Kubernetes 中使用 Helm GitLab-Runner 进行带有自签名证书的 Gitlab 和 Docker Registry(x509 错误)
嘿伙计们,
我已经使用 ubuntu 服务器 18 LTS 建立了一个带有 k3s(目前是 1 个 Intel NUC)的本地 kubernetes 集群。我还有一个带有 GitLab 和私有注册表(在 docker 上运行)的可用 Synology Diskstation。两者(GitLab 和 Registry)都使用相同的自定义自签名证书(https://my.domain/ = GitLab - https://my.domain:8050/ = Registry)。
现在我已将我的 kubernetes 集群添加到 gitlab 并尝试使用 gitlab auto devops。我使用以下配置安装了 gitlab-runner helm chart:
起初,由于自签名证书(注册到 gitlab 实例时出现 x509 错误),我遇到了 gitlab-runner 无法连接到我的 gitlab 实例的问题。但是我可以通过certsSecretName
在我的 values.config 文件中设置一个包含我的自签名证书的秘密来修复它。但是现在当我的跑步者试图从我的注册表中提取时,我也得到了那个该死的 x509 错误。
有人知道如何解决这个问题吗?我认为这与我的 gitlab-runner 中拉取的 gitlab-runner-helper 图像有关吗?但我找不到任何如何将我的自签名证书添加到这个帮助图像的东西。(注意:我已经在我的 intel nucs ca-certificates 上安装了自定义证书。所以 curl 或 wget 可以正常工作)
请帮我。非常感谢。西蒙