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