【问题标题】:Can't install new pipy packages on Google Cloud Composer无法在 Google Cloud Composer 上安装新的 pipy 包
【发布时间】:2020-03-21 01:07:38
【问题描述】:

我们正在使用版本为 composer-1.8.0-airflow-1.10.3Google Cloud Composer 在 GCP 上调度我们的管道。

最近,当我们需要向环境中添加一些新的 Python 包时(无论是使用 Terraform 还是 Cloud Console),我们不断收到一条奇怪的错误消息,但 Cloud Composer 仍在运行且未安装新包。

Cloud Composer UI 上显示的错误消息:

找不到资源(resource=europe-west1-xxxxxxxxxxxxxxxxxxxx-composer-backend-sub-3fb66162-3xxxd-4f43-ba47-xxxxxx)。,Http 错误状态代码:400 Http 错误消息:BAD REQUEST 附加错误:{" originalResponse":"{\"paths\":[\"/apis\",\"/apis/\",\"/apis/apiextensions.k8s.io\",\"/apis/apiextensions.k8s.io /v1beta1\",\"/healthz\",\"/healthz/etcd\",\"/healthz/log\",\"/healthz/ping\",\"/healthz/poststarthook/crd-informer-已同步\",\"/healthz/poststarthook/generic-apiserver-start-informers\",\"/healthz/poststartthook/start-apiextensions-controllers\",\"/healthz/poststarthook/start-apiextensions-informers\" ,\"/metrics\",\"/openapi/v2\",\"/version\"]}","re​​ason":"类型提供程序 'europe-west1-xxxxxxxxxxxxxxxxxxxx- 的描述符 url 'https://35.187.59.32/swaggerapi/apis/batch/v1'无法获取 addons-job-typer'。"},Http 错误状态代码:400 Http 错误消息:BAD REQUEST 附加错误:{"ResourceType":"gcp-types/storage-v1:storage.objects.list", "ResourceErrorCode":"403","ResourceErrorMessage":{"code":403, "errors":[{"domain":"global","message":"xxxxxxxx@cloudservices.gserviceaccount.com 没有 storage.objects.list 对 composer-unlistable 的访问权限。","re​​ason":"forbidden"} ],"message":"xxxxxxxx@cloudservices.gserviceaccount.com 没有 storage.objects.list 对 composer-unlistable 的访问权限。","statusMessage":"Forbidden","re​​questPath":"https://www.googleapis.com/storage/v1/b/composer-unlistable/o","httpMethod ":"GET","suggestion":"考虑授予 xxxxxxxx@cloudservices.gserviceaccount.com 权限"}}

查看 Stackdriver 日志记录 时,我们可以找到与该环境更新相关的错误消息:

状态:{ 代码:9
消息:“FAILED_PRECONDITION”
}

对导致此行为的原因以及如何解决它有任何想法吗?

编辑:

请注意,xxxxxxxx@cloudservices.gserviceaccount.com 是 Google 用于内部通信的服务帐号,无法在 IAM 页面上进行管理(请参阅Service Account Documentation)。

此外,我们注意到有时添加新包可以正常工作。但是下次我们尝试添加另一个包时,它会失败并显示与上述相同的错误消息。

【问题讨论】:

  • 您是否在开始收到此错误之前不久将气流版本升级到 1.10.3?另外,你手动将环境的GKE集群升级到1.14++版本了吗?

标签: google-cloud-platform google-cloud-composer google-cloud-iam terraform-provider-gcp


【解决方案1】:

我可以通过手动将 Composer 环境的 GKE 集群 (composer-1.8.2-airflow-1.10.3) 升级到 1.14.8-gke.12 来重现此错误:

documentation 中所述,不使用私有 IP 的 Composer 环境不应将 GKE 升级到 1.14+。这些版本有deprecated Swagger in favor of OpenAPI。未来的 Cloud Composer 版本将创建使用 OpenAPI 的集群,并将现有环境升级到 GKE 1.14 及更高版本。

目前,OpenAPI 仅用于私有 IP 环境,因此没有问题。

很遗憾,无法降级您的 GKE 集群,因此唯一的解决方案是删除并重新创建您的环境。

【讨论】:

  • 确实是问题所在。我们使用 GKE 1.13 版重新创建了环境。谢谢!
  • 这太荒谬了。将 GKE 升级到 1.15.x 会破坏其他任何东西吗?我现在被困在1.14.10 上,同样的问题。我正在尝试扩展集群,但出现上述错误。
  • 更糟糕的是:我刚刚创建了一个新的 Composer 环境。 GKE 版本没有选项。它默认为1.14.10-gke.17,我无法安装pandas。一个人能做什么?在我以前的环境(我手动将 GKE 从 1.13 升级到 1.14 的环境)中,我尝试升级到 1.15,并且出现了同样的问题。 Cloud Composer 现在完全没用了吗?
【解决方案2】:

服务xxxxxxxx@cloudservices.gserviceaccount.com 帐户似乎没有正确的权限。在 IAM 部分中,将“Storage Object Viewer”角色添加到此服务帐户。

【讨论】:

  • 其实这是一个google内部服务账号。 cloud.google.com/iam/docs/…
  • 是的,我知道。您需要确保该服务帐户可以使用这些权限。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 2019-06-08
  • 1970-01-01
  • 2019-06-06
  • 2022-07-28
  • 2020-12-13
  • 2020-02-17
相关资源
最近更新 更多