Kubernetes 如何运行'kubectl-f apply<;file.yaml>;`在Cloud Composer中使用bash操作符从DAG开始?

Kubernetes 如何运行'kubectl-f apply<;file.yaml>;`在Cloud Composer中使用bash操作符从DAG开始?,kubernetes,google-cloud-composer,Kubernetes,Google Cloud Composer,我正在尝试应用一个配置文件,使用bash操作符从cloudcompose创建一个POD 首先,我尝试使用PodOperator,但它不允许传递规范文件,它只是从图像构建 我尝试使用BashOperator,因为worker已经包括gcloud、kubectl等 但每次运行命令时,参数或gcloudsdk都会出错 我尝试运行单个kubectl命令,kubectl确实安装在worker上 我以前尝试过为集群设置配置,但在那个调用中也出现了错误 job=bash运算符( 任务_id='start',

我正在尝试应用一个配置文件,使用bash操作符从cloudcompose创建一个POD

首先,我尝试使用PodOperator,但它不允许传递规范文件,它只是从图像构建

我尝试使用BashOperator,因为worker已经包括gcloud、kubectl等

但每次运行命令时,参数或gcloudsdk都会出错

我尝试运行单个kubectl命令,kubectl确实安装在worker上

我以前尝试过为集群设置配置,但在那个调用中也出现了错误

job=bash运算符(
任务_id='start',
bash_command='kubectl apply-f
/home/airflow/gcs/dags/../spec.yaml',
env=神童_env
)
我希望pod可以通过配置文件有效地创建,但实际输出是

{bash_operator.py:124}信息-无法识别-文件路径


*如果运行cat/path,则文件确实存在

DAGs bucket
bucket//DAGs/
的内容将复制到保留文件夹结构的工作人员的“/home/aiffort/gcsfuse/DAGs/”中

如果spec.yaml像这样存储在DAGs存储桶中
bucket//DAGs//spec.yaml
,则该文件应在以下路径下可用
/home/afflow/gcsfuse/DAGs//spec.yaml

只需从文件系统的角度看一下“/home/afflow/gcs/dags/../spec.yaml”路径,而不是“…”您可能应该使用“.”来引用“dags”文件夹上方的文件夹

--


另一方面,除了使用显式调用
kubectl
命令创建Pod之外,还有一种替代方法,即可以使用
KubernetesPodOperator
-

我忘了回答,显然通过bash操作符传递env vars会弄乱执行

路径存在,我能够运行脚本,没有任何问题,只是无法通过这种方式传递env变量


我最终在
spec.yaml
中传递了它们,您可能遇到了问题,这可能是因为尽管您配置了
gcloud
auth,但您仍然必须获得群集的
kubectl
凭据:

gcloud容器集群获取凭据$CLUSTER\u NAME--zone$GCP\u zone--project$project\u ID
kubectl apply-f之前运行此命令
/home/airflow/gcs/dags/../spec.yaml