【问题标题】:Desired GKE pod not found , google cloud composer找不到所需的 GKE pod,谷歌云作曲家
【发布时间】:2019-08-22 13:57:21
【问题描述】:

我正在使用谷歌云作曲家,并创建了作曲家环境。作曲家环境已准备好(有绿色勾号),现在我正在尝试使用谷歌云外壳设置 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,都是绿色的,没有发现任何问题。 我验证了 composer API、Billing kubernetes,所有必需的 API 都已启用。

我分配了“编辑”角色。

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

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

【问题讨论】:

  • 您能否截取 Composer 环境的 GKE 集群中运行的所有 pod 的屏幕截图?
  • @hexacyanide 添加截图

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


【解决方案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 连接到任何调度程序/工作程序 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 环境中造成问题。

【讨论】:

  • 我无法在 pod 中进行 SSH,但这很有帮助
  • 很高兴听到 -- 我用更具体的标志(如--namespace)更新命令,以防您需要重试。
  • 这并不是真正的回归,正如@hexacyanide 所注意到的,我们现在将与气流相关的工作负载放置在自 1.6.0 以来的专用命名空间中,并且 gcloud SDK 已更新以解决此问题。请运行 gcloud components update 它应该会解除对您的阻止。
猜你喜欢
  • 2020-06-29
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2017-09-25
  • 2018-12-26
  • 2019-01-29
  • 2020-07-18
  • 1970-01-01
相关资源
最近更新 更多