Google Cloud Run的准备情况检查-怎么样?

时间:2019-05-28 19:23:21

标签: google-cloud-run

我在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会立即重定向流量,从而导致用户等待很长时间。

EDIT3: 在部署新版本之后,这是发出第一个初始请求所需的时间。 Postman request

EDIT4: 我尝试启动的应用程序是在Python中。这是一个服务于Tensorflow模型的Flask应用程序。我需要将几个文件加载到内存中。在我的计算机上,这只需要5到10秒钟,但是在云上运行则需要更长的时间。

1 个答案:

答案 0 :(得分:0)

Cloud Run除了确认您的服务正在侦听指定端口之外,没有其他准备情况检查。完成此操作后,流量便开始路由到新修订版,而先前的修订版则在处理正在进行的请求时按比例缩小。

如果您的目标是确保在部署后尽快准备好服务,则可以设置一个较重的入口点来处理更多的设置任务。

这样的“较重”入口点将有助于部署后的响应,但以较慢的冷启动为代价。

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

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

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

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