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中也找不到任何关于它的内容。
编辑2:
我正在寻找一种让 Google 云运行在容器中对我的应用程序进行就绪检查的方法。与 kubernetes 相同的方式 - 此处示例:https ://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 。问题是我不想让我的服务在容器中的应用程序仍在旋转时停止 30-60 秒。当我推送新版本时,Google 会立即重定向导致用户等待很长时间的流量。
EDIT3:这是我部署新版本后发出第一个初始请求所需的时间。
EDIT4:我试图启动的应用程序是 Python 中的。这是一个提供张量流模型的烧瓶应用程序。我需要将几个文件加载到内存中。这在我的电脑上只需要 5-10 秒,但你可以在云上运行更长时间。
解决方案
除了确认您的服务正在侦听指定端口外,Cloud Run 不会进行就绪检查。完成此操作后,流量开始路由到新修订版,并且先前的服务修订版在打包进行中的请求时按比例缩小。
如果您的目标是确保服务在部署后尽快准备就绪,您可能会创建一个更重的入口点来处理更多的设置任务。
像这样的“较重”入口点将有助于部署后的响应能力,但代价是冷启动速度较慢。
您可以在入口点中预先加载的示例(无论是在 BASH 脚本中还是在打开 HTTP 服务器之前在您的服务中):
- 执行所有必要的设置任务,例如将文件加载到内存中。
- 在全局状态下建立和保存任何客户端或与支持服务的连接。
- 通过您的服务代码执行支持服务和资源可用的任何运行状况检查。
- 预热容器内缓存以最小化第一个响应。
同样,这通过惩罚所有冷启动来优化部署后响应。
https://cloud.google.com/run/docs/tips#optimizing_performance
推荐阅读
- haskell - Haskell Exception String 上的非详尽模式
- google-cloud-platform - 如何在 GCP 的文件夹中列出文件夹和项目
- swift - 使用 CATransform3D 将矩形图像转换为四边形后如何设置锚点和位置
- python - (Python单元测试)在同一个python文件中为不同的方法不同地修补相同的对象
- javascript - 替换javascript中字符串中的所有字符
- javascript - 如何为 .scroll(function() 设置 PAGE-ID
- python - 使用 plotly 和 xlwings 将 html 添加到 excel 中
- python - 按某些条件读取数据帧值
- tensorflow - 当我使用 keras.layers.MaxPool1d 函数时,出现错误,我该如何解决?
- javascript - 如何即时更改 npm 命令脚本?