Google Cloud Composer中Airflow CLI传参报错,如何正确传递-n参数?
问题描述
原本可正常运行的Composer命令:
gcloud composer environments run <COMPOSER_NAME> dags next-execution -- <DAG_ID>
但为Airflow命令添加-n 5选项后,执行如下命令时抛出错误:
gcloud composer environments run <COMPOSER_NAME> dags next-execution -- -n 5 <DAG_ID>
错误信息:
kubeconfig entry generated for europe-west1-<ID>. Executing within the following Kubernetes cluster namespace: composer-<ID2> Error from server (NotFound): pods "airflow-worker-<ID3>" not found ERROR: (gcloud.composer.environments.run) kubectl returned non-zero status code.
解决方法
核心问题是:默认情况下gcloud composer environments run会尝试在Airflow Worker Pod上执行命令,但Worker Pod可能因自动缩容(无任务运行时缩容至0)被销毁,导致找不到Pod。
正确的操作是指定在始终运行的Scheduler Pod或Webserver Pod上执行Airflow CLI命令,同时规范参数传递:
方式一:指定在Scheduler Pod执行
gcloud composer environments run <COMPOSER_NAME> dags next-execution --location <REGION> --scheduler -- -n 5 <DAG_ID>
方式二:指定在Webserver Pod执行
gcloud composer environments run <COMPOSER_NAME> dags next-execution --location <REGION> --webserver -- -n 5 <DAG_ID>
关键说明
- 必须添加
--location <REGION>参数(如europe-west1),明确Composer环境所在区域,避免定位异常 --scheduler/--webserver参数指定命令运行的Pod类型,这两个组件的Pod会持续运行,不会因缩容消失- 所有Airflow CLI的参数(包括
-n 5和<DAG_ID>)必须放在最后一个--之后,确保参数被正确传递给Airflow命令
内容的提问来源于stack exchange,提问作者Kossak
相关产品推荐
相关产品推荐

