谷歌云运行的准备情况检查 - 如何?

Posted

技术标签:

【中文标题】谷歌云运行的准备情况检查 - 如何?【英文标题】:readiness check for google cloud run - how? 【发布时间】:2019-10-14 08:58:07 【问题描述】:

我在https://cloud.google.com/run/docs/how-to 的文档中进行了相当广泛的搜索。我还在 console.cloud.google.com 中找到了 YAML,但我无法编辑它。有没有办法使用我可能错过的命令来设置它?

编辑: 我在https://cloud.google.com/sdk/gcloud/reference/beta/container/clusters/create 中也找不到任何关于它的信息。

EDIT2:

我正在寻找一种方法来让 Google 云运行在容器中对我的应用程序进行就绪检查。与 kubernetes 相同的方式 - 此处示例:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/。问题是我不想让我的服务在容器中的应用程序仍在旋转时停止 30-60 秒。当我推送新版本时,Google 会立即重定向导致用户等待很长时间的流量。

编辑3: 这是我部署新版本后发出第一个初始请求所需的时间。

编辑4: 我要启动的应用程序是 Python 中的。这是一个提供张量流模型的烧瓶应用程序。我需要将几个文件加载到内存中。这在我的电脑上只需要 5-10 秒,但您可以在云上运行更长时间。

【问题讨论】:

您能否澄清或扩展您所要求或寻找的内容? @Kolban 查看我所做的编辑 :) 你问了一个好问题。我在任何地方都没有看到对部署新修订时发生的期望的描述。我的猜测是,不能保证连续不间断的操作,而是所有执行都暂停并排队。 需要一些关于您所经历的细节和数据。根据我的经验,我在配置新版本时没有看到停机时间。流量继续上一个版本,直到新版本准备好。这是我的观察,而不是服务声明。如果你有数据,我会花时间调查/复制自己。 @JohnHanley 查看我所做的编辑 【参考方案1】:

除了确认您的服务正在侦听指定端口外,Cloud Run 不会进行就绪检查。完成此操作后,流量开始路由到新修订版,而之前的服务修订版在打包进行中的请求时会按比例缩小。

如果您的目标是确保服务在部署后尽快准备就绪,您可能会创建一个更重的入口点来处理更多设置任务。

像这样的“较重”入口点将有助于部署后的响应能力,但代价是冷启动速度较慢。

您可以在入口点中预先加载的示例(无论是在 BASH 脚本中还是在打开 HTTP 服务器之前在您的服务中):

执行所有必要的设置任务,例如将文件加载到内存中。 在全局状态下建立并保留任何客户端或与支持服务的连接。 通过您的服务代码执行任何支持服务和资源可用的运行状况检查。 预热容器内缓存以最小化第一个响应。

同样,这通过惩罚所有冷启动来优化部署后响应。

https://cloud.google.com/run/docs/tips#optimizing_performance

【讨论】:

以上是关于谷歌云运行的准备情况检查 - 如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用谷歌云数据库部署 Laravel 8 谷歌云运行

在谷歌云上创建集群

谷歌云上的getEffectiveOrgPolicy错误运行秘密安装卷

谷歌云健康检查失败

如何在谷歌云上安排 docker 运行

谷歌云函数抛出 404 错误