找不到所需的 GKE pod,google 云作曲家

Desired GKE pod not found , google cloud composer

我正在使用 Google 云作曲家,并创建了作曲家 environment.Composer 环境已准备就绪(有绿色勾号),现在我正在尝试设置 DAG python 代码中使用的变量google云shell.

设置变量的命令:

     gcloud composer environments run test-environment \
       --location us-central1 variables -- \
       --set gcp_project xxx-gcp

确切的错误信息:

  ERROR: (gcloud.composer.environments.run) Desired GKE pod not found. If the environment was recently started, please wait and retry.

作为调查的一部分,我尝试进行以下操作,但每次都出现相同的错误。 我使用 UI 而不是 google shell 命令创建了一个新环境。 我检查了 kubernetes 引擎中的 pods 并且都是绿色的,没有发现任何问题。 我验证了 composer API、Billing kubernetes,所有必需的 API 都已启用。

我分配了 'Editor' 个角色。

添加截图我第一次看到有些失败

退出代码 1 出错 google 故障排除指南描述:如果退出代码为 1,则容器因应用程序崩溃而崩溃。

如果您使用 google-cloud-sdk that is too old, because it now launches pods in namespaces other than default. The error you see is a result of looking for Kubernetes pods in the default namespace and failing to find them,这是 Composer 1.6.0 版的副作用。

要解决此问题,运行 gcloud components update。如果您还不能更新,执行 Airflow 命令的解决方法是自己手动 SSH 到 pod 和 运行 airflow。首先,获取 GKE 集群凭据:

$ gcloud container clusters get-credentials $COMPOSER_GKE_CLUSTER_NAME

获得凭据后,您应该找到 pods 运行 所在的命名空间(您也可以使用 Cloud Console 找到):

$ kubectl get namespaces
NAME                                    STATUS   AGE
composer-1-6-0-airflow-1-9-0-6f89fdb7   Active   17h
default                                 Active   17h
kube-public                             Active   17h
kube-system                             Active   17h

然后您可以通过 SSH 连接到任何 scheduler/worker pod,然后 运行 命令:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl airflow list_dags -r

如果您愿意,也可以打开一个shell:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl bash

airflow@airflow-worker-569bc59df5-x6jhl:~$ airflow list_dags -r

失败的 airflow-database-init-job 作业不相关,不会在您的 Composer 环境中造成问题。