首页 > 解决方案 > 为每个访问者按需启动一个独特的 Docker 容器

问题描述

情况:我们有一个带有 3 个 Docker 容器(前端、后端、数据库)的 web 应用程序(我将在下面的上下文中将其称为“单元”),我们想制作一个演示端,每个访问者都会获得一个唯一的单元,它不会活得更长,例如 20 分钟不活动。原因是,我们希望每个潜在用户在演示页面上都有干净的体验。特别是,我们不希望任何人阅读其他访问者留下的任何内容(例如种族主义)。

Docker / k8s 这样的事情可行吗?

编辑:将其隐藏在另一个网站后面不会有问题,例如“单击此处开始演示”,然后它将在导航之前启动一个新单元。

TLDR:如何为我们的 webapp 的每个访问者部署一个唯一的 docker 容器。

标签: dockerkubernetescontainers

解决方案


Docker / k8s 这样的事情可行吗?

绝对地。我可以看到至少有两种使用 k8s 实现这一目标的方法。

  1. 简单但可能昂贵的方式(如果您在云中运行 k8s)。

您可以将这 3 个容器(前端、后端、数据库)组合成一个 Pod,并为每个用户创建一个新的 Pod。一个用户 - 一个 Pod(或一组 Pod,如果需要)。这很容易,但可能非常昂贵(如果您有很多用户)。如果不再需要 Pod,可以稍后将其销毁。

  1. 更复杂,但不是那么昂贵的方式。

如果您的软件允许您为所有用户运行相同的前端和后端,则可以将“唯一”内容移动到数据库中。例如进入一些表格/表格集。在这种情况下,只有少数几个 pod 会不断启动,而不是“为每个用户设置全套”。数据存储在数据库中。

您可以定期刷新数据库,以清除用户在测试期间创建的所有资产。

因此,与第一个选项相比,您最终可能会得到更小的“足迹”。

希望有帮助。


推荐阅读