问题标签 [kubernetespodoperator]

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 投票
1 回答
413 浏览

kubernetes - Airflow - KubernetesPodOperator - 绑定服务帐户的角色

我目前正在使用 KubernetesPodOperator 在 Kubernetes 集群上运行 Pod。我收到以下错误:

kubernetes.client.rest.ApiException:(403)原因:禁止

HTTP 响应头:HTTPHeaderDict({'Audit-Id': '', 'Cache-Control': 'no-cache, private', 'Content-Type': 'application/json', 'X-Content-Type-Options ':'nosniff','日期':'星期一,2021 年 8 月 30 日 00:12:57 GMT','内容长度':'309'})

HTTP 响应正文:{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pod 被禁止:用户 "system:serviceaccount :airflow10:airflow-worker-serviceaccount" 无法在命名空间 "default"","re​​ason":"Forbidden","details":{"kind":"pods"} 中列出 API 组 "" 中的资源 "pods", “代码”:403}

我可以通过运行以下命令来解决这个问题:

kubectl create clusterrole pod-creator --verb=create,get,list,watch --resource=pods

kubectl create clusterrolebinding pod-creator-clusterrolebinding --clusterrole=pod-creator --serviceaccount=airflow10:airflow-worker-serviceaccount

但我希望能够在气流中自动设置具有正确权限的服务帐户。什么是无需运行上述命令的好方法?

0 投票
1 回答
243 浏览

python - 使用 Python Kubernetes API 使用 Secrets 挂载卷

我正在使用KubernetesPodOperator. 在容器中运行的 Python 进程必须打开包含敏感数据的文件:

并且必须对 CloudStorage 客户端进行身份验证:

根据最佳安全实践,我不会将容器的图像与敏感数据打包在一起。相反,我使用Kubernetes Secrets。使用适用于 Kubernetes 的 Python API我正在尝试将它们安装为一个卷,但没有成功。该credentials/目录存在于容器中,但它是空的。我应该怎么做才能使文件jira_credentials.jsoncloud_storage_credentials.json在容器中可访问?

我的 DAG 代码:

0 投票
0 回答
120 浏览

kubernetes - 在 Airflow KubernetesPodOperator (Minikube) 和 DAG 中找不到 dag_id

我尝试使用 Minikube 运行基于 KubernetesPodOperator 的 DAG。DAG 是从我的本地计算机安装的。问题是 pod 找不到 DAG:

气流是如何安装的:

值.yml:

DAG:

pod_template_file.yml

Minikube 如何使用挂载点启动: minikube start --mount=true --mount-string=/home/path/dags/:/mnt/airflow/dags/

DAG 从我的本地机器安装到 Minikube 主机。然后从主机安装到应该运行 DAG 的 pod。

我没有让豆荚知道我的 DAG 缺少什么?

0 投票
1 回答
173 浏览

kubernetes - KubernetesPodOperator 的airflow2.0:TemplateNotFound

我正在使用 Airflow2.0 并KubernetesPodOperator希望运行一个命令,该命令将操作员运行的图像内部的文件用作参数。这是我使用的:

但这给了我错误:

该图像不使用任何宏。

有人有任何线索吗?我做错了什么?

0 投票
1 回答
90 浏览

jinja2 - Airflow - 无法在 Kubernetes Pod Operator 任务中使用 jinja 模板获取资源

Airflow - 无法对 Kubernetes Pod Operator 任务中的资源使用 jinja 模板。能够将 jinja 模板用于环境变量、图像,但不能用于资源来指定 CPU 和内存(请求和限制)。

0 投票
0 回答
43 浏览

airflow - Airflow 没有“看到”底层 Kubernetes pod 已完成

我们在 Google Composer 1.7.5 中使用托管的 Airflow 1.10.2 通过KubernetesPodOperator(将在工作集群内的 Kubernetes pod 中运行的任务)启动作业

有好几次 Kubernetes pod 本身成功完成,但是 Airflow 没有“看到” pod 已经完成(它没有得到备忘录),所以 Airflow认为pod 仍在运行并且没有移动进入下一个任务。

我们计划使用 Airflow 2.1.4 迁移到 Composer 2,我相当有信心它可以更好地管理 pod 和与 Kubernetes 的通信,但是......

...我们可以做一个“快速”的调整吗?即使是关于如何开始调查的链接也会有所帮助。

先感谢您。

0 投票
1 回答
44 浏览

airflow - 如何将自定义组件添加到 Elyra 的可用气流操作员列表中?

尝试基于 KubernetesPodOperator 制作自己的组件。我能够定义组件并将其添加到组件列表中,但是在尝试运行它时,我得到:

节点“KubernetesPodOperator”的操作员“KubernetesPodOperator”未在可用操作员列表中配置。请将“KubernetesPodOperator”的完全限定包名称添加到 AirflowPipelineProcessor.available_airflow_operators 配置中。

和错误:

查看 src 代码后,我可以在processor_airflow.py中看到这些行:

我不确定这是否可以从客户端扩展。

0 投票
1 回答
27 浏览

jinja2 - 在使用自定义组件时如何配置 Elyra 以使用另一个 Jinja 模板?

我正在尝试让 Elyra 为我的自定义组件使用自定义 Jinja 模板。我已经尝试为这两个项目修改 Elyra 的配置文件:

  • c.ElyraApp.template_paths = ['/home/templates']
  • c.ExtensionApp.template_paths = ['/home/templates']

不幸的是,它们都不起作用,我不确定它们是否不打算像这样使用,或者我是否配置错误。我能够做到这一点的唯一方法是修改templates/airflow/不幸的是中列出的模板是持久的。

另外据我在源代码中看到的,路径只是硬编码的,所以不确定它是否真的可以配置?

这里

目前更改模板的原因是为 Pod 添加卷挂载。但是,如果将来需要更改其他内容,那么能够指定我自己的模板会很方便。有任何想法吗?