找不到所需的GKE Pod,谷歌云作曲家

时间:2019-04-01 11:52:16

标签: kubernetes google-cloud-platform airflow google-kubernetes-engine google-cloud-composer

我正在使用Google Cloud Composer,并创建了Composer环境。Composer环境已准备就绪(带有绿色的勾号),现在我正尝试使用Google Cloud Shell设置DAG python代码中使用的变量。

设置变量的命令:

     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引擎中的Pod,它们都是绿色的,没有看到任何问题。 我验证了作曲者API,计费kubernetes,所有必需的API均已启用。

我分配了“编辑”角色。

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

enter image description here

enter image description here

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

1 个答案:

答案 0 :(得分:1)

如果您使用的google-cloud-sdk太旧,这是Composer 1.6.0版的副作用,因为它现在可以在default以外的命名空间中启动pod。您看到的错误是looking for Kubernetes pods in the default namespacefailing to find them的结果。

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

$ gcloud container clusters get-credentials $COMPOSER_GKE_CLUSTER_NAME

获得凭据后,您应该找到Pod在哪个名称空间中运行(也可以使用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进入任何调度程序/工作程序窗格,并运行命令:

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

如果愿意,还可以打开外壳程序

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

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

失败的airflow-database-init-job作业无关,不会在您的Composer环境中引起问题。