Airflow gcloud composer命令失败";在$PATH中找不到可执行文件;
我正在尝试在Cloud Composer上运行气流DAG。我错过什么了吗Airflow gcloud composer命令失败";在$PATH中找不到可执行文件;,airflow,google-cloud-composer,Airflow,Google Cloud Composer,我正在尝试在Cloud Composer上运行气流DAG。我错过什么了吗 $ gcloud composer environments run myenv \ --location us-central1 --project myproject \ backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 \ -x -I mydag kubeconfig entry generated for us-central1-myenv-xx
$ gcloud composer environments run myenv \
--location us-central1 --project myproject \
backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 \
-x -I mydag
kubeconfig entry generated for us-central1-myenv-xxx-gke.
Executing within the following kubectl namespace: xxx
command terminated with exit code 126
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process
caused "exec: \"-s\": executable file not found in $PATH": unknown
ERROR: (gcloud.composer.environments.run) kubectl returned non-zero status code.
我正在使用以下版本的CLI工具
$ gcloud version
Google Cloud SDK 286.0.0
bq 2.0.55
core 2020.03.24
gsutil 4.48
Composer图像版本为Composer-1.8.3-airflow-1.10.3
谢谢。试试gcloudsdk的旧版本,比如283.0.0 我在版本287.0.0上也有同样的问题
回到使用版本283.0.0后,一切正常。尝试使用gcloudsdk的旧版本,如283.0.0 我在版本287.0.0上也有同样的问题
回到使用版本283.0.0后,一切正常。为了深入调查Afflow GKE容器中的问题,我建议调用
gcloud composer environments run
命令,切换到debug
输出详细级别
gcloud composer environments run myenv --location us-central1 --project myproject --verbosity=debug backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I mydag
命令打印输出可能会提供一个获取调试条目的机会,使用kubectl
命令行组合搜索记录:
调试:执行命令:[u'/google/googlecloudsdk/bin/kubectl',
u'--namespace',u'composer-1-8-3-afflow-1-10-3-xxxxxx',u'exec',
u'airflow-worker-xxxxxxxx',u'-tic',u'airflow-worker',u'airflow',
u'backfill',u'--',u'-s',u'2020-10-05T10:30',u'-e',u',
u'2020-10-05T10:30',u'-x',u'-I',u'test_dag']
上面的输出反映了gcloud
如何解耦命令行参数,将它们分配给kubectl
命令继承器。接下来,您可以根据以下参数手动编写对特定气流工作者吊舱的kubectl
命令调用:
kubectl --namespace composer-1-8-3-airflow-1-10-3-xxxxxx exec airflow-worker-xxxxxxxx -tic airflow-worker airflow backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I test_dag
在评论对话中,提到您能够通过kubectl
call hook成功发出气流命令,我可以假设问题可能与kubectl
前任从topgcloud
检索到的错误参数有关
您甚至可以尝试分别用
--start\u date
和--end\u date
替换-s
、-e
位置参数,由于未知原因,GKE嵌套OCI运行时在错误消息中将-s
识别为执行文件。为了深入调查GKE容器中的问题,我建议调用gcloud composer environments run
命令,切换到输出详细程度的debug
gcloud composer environments run myenv --location us-central1 --project myproject --verbosity=debug backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I mydag
命令打印输出可能会提供一个获取调试条目的机会,使用kubectl
命令行组合搜索记录:
调试:执行命令:[u'/google/googlecloudsdk/bin/kubectl',
u'--namespace',u'composer-1-8-3-afflow-1-10-3-xxxxxx',u'exec',
u'airflow-worker-xxxxxxxx',u'-tic',u'airflow-worker',u'airflow',
u'backfill',u'--',u'-s',u'2020-10-05T10:30',u'-e',u',
u'2020-10-05T10:30',u'-x',u'-I',u'test_dag']
上面的输出反映了gcloud
如何解耦命令行参数,将它们分配给kubectl
命令继承器。接下来,您可以根据以下参数手动编写对特定气流工作者吊舱的kubectl
命令调用:
kubectl --namespace composer-1-8-3-airflow-1-10-3-xxxxxx exec airflow-worker-xxxxxxxx -tic airflow-worker airflow backfill -- -s 2020-10-05T10:30 -e 2020-10-05T10:30 -x -I test_dag
在评论对话中,提到您能够通过kubectl
call hook成功发出气流命令,我可以假设问题可能与kubectl
前任从topgcloud
检索到的错误参数有关
您甚至可以尝试分别用
--start\u date
和--end\u date
替换-s
、-e
位置参数,由于未知原因,GKE嵌套OCI运行时在错误消息中将-s
识别为执行文件。该错误是由kubectl exec
中最近的更改引起的,该更改仅导致选项结束后的令牌(--
)被解释为可执行文件。由于gcloud composer环境在内部运行
使用kubectl
,因此可以回滚到较旧版本的kubectl
作为解决方法(将其作为gcloud
组件安装的用户可以使用)
这在CloudSDK 288.0.0版中得到了解决。至少更新到此版本以修复此问题(您不需要更新kubectl
)。运行以下命令以更新:
gcloud components update
该错误是由最近在
kubectl exec
中的更改引起的,该更改仅导致选项结束(--
)后的令牌被解释为可执行文件。由于gcloud composer环境在内部运行
使用kubectl
,因此可以回滚到较旧版本的kubectl
作为解决方法(将其作为gcloud
组件安装的用户可以使用)
这在CloudSDK 288.0.0版中得到了解决。至少更新到此版本以修复此问题(您不需要更新kubectl
)。运行以下命令以更新:
gcloud components update
安装最新的google cloud SDK和Kubectl解决了这个问题
sudo apt-get install kubectl
sudo apt-get install google-cloud-sdk
安装最新的google cloud SDK和Kubectl解决了这个问题
sudo apt-get install kubectl
sudo apt-get install google-cloud-sdk
您是否已尝试通过所述的
kubectl
命令行工具直接连接到气流工人并在特定Pod内执行?是的,它可以工作,但我的问题是为什么该命令失败。您是否已尝试通过所述的kubectl
命令行工具直接连接到气流工人并在Pod内执行特定的Pod?是的,它可以工作,但我的问题是为什么这个命令失败。