docker - 为每个访问者按需启动一个独特的 Docker 容器
问题描述
情况:我们有一个带有 3 个 Docker 容器(前端、后端、数据库)的 web 应用程序(我将在下面的上下文中将其称为“单元”),我们想制作一个演示端,每个访问者都会获得一个唯一的单元,它不会活得更长,例如 20 分钟不活动。原因是,我们希望每个潜在用户在演示页面上都有干净的体验。特别是,我们不希望任何人阅读其他访问者留下的任何内容(例如种族主义)。
Docker / k8s 这样的事情可行吗?
编辑:将其隐藏在另一个网站后面不会有问题,例如“单击此处开始演示”,然后它将在导航之前启动一个新单元。
TLDR:如何为我们的 webapp 的每个访问者部署一个唯一的 docker 容器。
解决方案
Docker / k8s 这样的事情可行吗?
绝对地。我可以看到至少有两种使用 k8s 实现这一目标的方法。
- 简单但可能昂贵的方式(如果您在云中运行 k8s)。
您可以将这 3 个容器(前端、后端、数据库)组合成一个 Pod,并为每个用户创建一个新的 Pod。一个用户 - 一个 Pod(或一组 Pod,如果需要)。这很容易,但可能非常昂贵(如果您有很多用户)。如果不再需要 Pod,可以稍后将其销毁。
- 更复杂,但不是那么昂贵的方式。
如果您的软件允许您为所有用户运行相同的前端和后端,则可以将“唯一”内容移动到数据库中。例如进入一些表格/表格集。在这种情况下,只有少数几个 pod 会不断启动,而不是“为每个用户设置全套”。数据存储在数据库中。
您可以定期刷新数据库,以清除用户在测试期间创建的所有资产。
因此,与第一个选项相比,您最终可能会得到更小的“足迹”。
希望有帮助。
推荐阅读
- docker - 重新创建 docker bind-mount
- javascript - 如何在 vuejs2 中将道具从子级重置为父级
- php - Laravel:按日期范围搜索
- intellij-idea - 函数名称的 Goland 颜色
- sql - R vs SQL - 仅从数据库加载一些数据
- javascript - 如何将样式应用于 Gatsby 构建网站的降价文件中的数组?
- python - python中bi_adjacency矩阵中的列数
- .net - 日期时间反序列化
- c++ - 使用 std::cin 时再次打印输入
- javascript - 如何在 html/php/JQuery 中使用引导关闭警报并更改 $_SESSION 数组