0

我在 stackoverflow 上的第一篇文章;开始!

我刚刚发现了 IBM Code Engine,很高兴尝试一下!这个周末我尝试部署我的 docker 映像,尽管我在缩放方面遇到了一些问题。在讨论扩展问题之前,我一般对 IBM Cloud Code Engine 有一些疑问,考虑到我的交互式应用程序:

  1. 有状态的应用程序:我要部署的应用程序是有状态的。IBM Cloud Code Engine 是否支持开箱即用的有状态应用程序?
  2. 粘性会话:由于我的应用程序是有状态的,因此目标是让用户及其所有相关操作保持在同一个容器中。例如,如果用户在container 1其中并单击执行服务器端代码的按钮,我不希望该代码在container 2; 它应该在container 1. IBM Cloud Code Engine 是否支持开箱即用?
  3. 临时存储:我在文档中看到可以设置临时存储(即磁盘空间),但我看不到在控制台中修改它的能力。我错过了什么吗?或者,更多的 vCPU 和内存是否意味着更多的磁盘?我个人更喜欢容器注册表的 CLI,以及代码引擎本身的控制台。

请注意,无论每个实例的并发是 1 个还是多个用户,我都有这些问题。

关于扩展的注意事项: 我成功部署了我的应用程序,它看起来符合预期。但是,作为唯一的用户,我看到运行多个实例而不是一个(2 个,有时是 3 个实例)。当我打开另一个浏览器并以另一个用户身份登录时,同样的事情发生了。运行所需实例的两倍或三倍。有人可以建议吗?回到我上面的问题,我希望与应用程序的交互不会触发额外的实例。

如果有帮助,我可以提供一个简单的 Dockerfile 和应用程序代码。

4

1 回答 1

0
  1. 一般来说,答案是肯定的,尽管这取决于您如何定义有状态以及将状态存储在何处。示例:可以将状态存储在 COS/S3 存储桶中,暂时不存储在 NFS 挂载中
  2. 抱歉不行。底层的 Knative OSS 技术还不支持粘性会话,虽然开源社区正在开发它,所以它可能会到来。
  3. UI 当前不支持此功能,但在 CLI 中您可以指定ibmcloud ce app create --ephemeral-storage为参数
  4. 缩放:这取决于您如何定义缩放标准。创建应用程序时,Runtime settings您可以在该部分中指定并发值。这决定了一个实例将并行处理多少线程/请求的值。如果该值设置为 1,并且您有三个浏览器选项卡打开发送请求,代码引擎将扩展到(至少)三个实例(例如,当扩展目标是计算容量的 70% 时,我们将旋转到 4 )。如果该值设置为 100,则一个实例将处理 100 个并行请求,并且只有在收到 101 个请求时才会发生横向扩展。它与发送这些请求的用户数量无关。
于 2021-05-24T20:19:05.700 回答