【问题标题】:Google Cloud Build via cloudbuild.yaml times out randomly通过 cloudbuild.yaml 的 Google Cloud Build 随机超时
【发布时间】:2020-01-14 03:11:23
【问题描述】:

我有两个 Google App Engine 实例,以及 queue.yaml 和 cron.yaml 文件,它们在通过 Google Cloud Build 触发器推送到主分支时自动部署。触发器运行以下 cloudbuild.yaml 文件:

steps:
- name: gcr.io/cloud-builders/gcloud
  dir: website
  args: ['app', 'deploy', 'app.yaml']
  waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
  dir: support_backend
  args: ['app', 'deploy', 'support_backend.yaml']
  waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
  dir: website
  args: ['app', 'deploy', queue.yaml]
  waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
  dir: website
  args: ['app', 'deploy', 'cron.yaml']
  waitFor: ["-"]
timeout: 900s

app.yaml 配置运行 Django 的 Python 3.7 标准环境,support_backend.yaml 配置运行 Flask 的相同环境。

直到昨天,当构建开始随机超时时,我的部署还没有遇到任何问题。之前整个过程大约需要 5 分钟,现在构建超时(10 分钟后)。

我没有进行任何大的代码更改(实际上只是更改了三行),我没有使用任何新库。我尝试使用 waitFor 参数,这样所有步骤都不会相互依赖。有时 app.yaml 超时(有时需要 2 分钟),有时 support_backend.yaml 超时(有时需要 2 分钟)。哪个实例失败似乎是随机的。 此外,我已经通过 gcloud 控制台(使用gcloud app deploy app.yaml)成功地独立部署了这两个应用程序,每次都运行良好,每次大约需要 3 分钟。 编辑: 我现在也通过 gcloud 控制台进行了一次部署。

我尝试设置 timeout: 900s - 这似乎没有任何效果,构建仍然在 10 分钟后超时。谷歌云状态仪表板昨天提到构建服务中断,但仅限于亚洲服务器,我的应用程序在欧洲运行。此外,从那时起,该问题被标记为已解决,并且问题仍然存在。

这是来自失败构建的日志的结尾

...
File upload done.
Updating service [staging]...failed.

ERROR: (gcloud.app.deploy) Error Response: [4] Cloud build did not succeed within 10m.
Build error details: Build error details not available..
Check the build log for errors: https://console.cloud.google.com/gcr/builds/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX?project=XXXXXXXX

以及它提到的构建日志的结尾

...
Step #1 - "builder": INFO     gzip_tar_runtime_package took 0 seconds
Step #1 - "builder": INFO     Finished gzipping tarfile.
Step #1 - "builder": INFO     Building app layer took 0 seconds
Step #1 - "builder": INFO     starting: Stitching layers into final image
Finished Step #1 - "builder"
TIMEOUT
ERROR: context deadline exceeded

还有什么我可以尝试确定我的构建超时的确切原因吗?

【问题讨论】:

    标签: python google-app-engine google-cloud-platform gcloud google-cloud-build


    【解决方案1】:

    cloudbuild.yaml 文件中的超时是关于 您的 云构建提交。但是,当运行命令gcloud app deploy 时,会调用一个新的 Cloud Build,而正是这个失败

    自上周以来,我们也经历了可变的构建持续时间。在获得 Google Cloud 支持后,他们告诉我们 Cloud Build 存在问题。未提供解决日期。

    目前唯一的解决方法:拆分您的 Cloud Build 文件以仅执行小步骤,多试几次,如果幸运的话,它会通过!

    【讨论】:

    • 非常感谢@guillaume。很好的一点解释了为什么超时在 10 分钟内失败,即使我已将其设置为更长。我怀疑问题可能出在 Google 上,但由于我没有支付 200 英镑的支持费用,我无法检查(status.cloud.google.com 表示一切正常)。我想我会再等几天,然后 Google 就会采取行动。
    猜你喜欢
    • 2017-08-01
    • 2019-11-18
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2019-11-20
    • 1970-01-01
    相关资源
    最近更新 更多