首页 > 解决方案 > 谷歌云运行的准备情况检查 - 如何?

问题描述

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

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

编辑2:

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

EDIT3:这是我部署新版本后发出第一个初始请求所需的时间。 邮递员请求

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

标签: google-cloud-run

解决方案


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

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

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

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

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

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

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


推荐阅读