我正在为我们的组织开发一个 Jmeter 板应用程序,目前有一个使用kubernetes部署的解决方案。在这里,streamlit应用程序包含用于从Web API获取数据的代码(我的后端)和用于构建 Jmeter 板和可视化数据的代码(我的前端)。从API获取数据需要大约10秒,当后端和前端部署在同一个pod中时,这就带来了挑战。10个用户都获取了相同的数据, Jmeter 板的速度大大减慢。
我想将后端与前端分离,以便所有前端示例获取后端准备的完全相同的数据。我正在设想这样的事情:
- Backand每隔15秒从API中获取时间序列数据,并以某种方式存储这些数据。我想这可能是在为此目的而设置的数据库中,或者可能只是将数据写入文件(只有大约300行数据)。
1.前端查询数据库中的数据,或读取数据文件,并在 Jmeter 板中呈现数据。每当数据发生变化时,都应提取数据。与后台和数据存储的通信应该比与API的通信快得多,因此该解决方案应该在变得迟钝之前处理更多的用户。
我对kubernetes部署(以及使用数据库)完全陌生,但直觉告诉我,它应该可以实现我想要的。我对kubernates的术语还有点不确定,但如果我可以在一个容器中部署后端,在另一个容器中部署前端,那么我可以允许所有前端示例与后端容器通信?
1条答案
按热度按时间ozxc1zmp1#
在Kubernetes中,通常使用多个部署来部署应用程序,其中每个部署包含不同的容器,为应用程序堆栈的各个部分提供服务。例如,您可能有一个前端部署和另一个后端部署。此外,您可以使用Kubernetes Services来实现这些部署之间的通信,并利用内存缓存(如Redis)来提高性能。
以下是如何实现这一目标的高级概述:
前端部署:此部署将包含运行前端应用程序的容器。前端容器将处理用户交互和UI渲染。
后端部署:此部署将包含运行后端应用程序的容器。后端容器将处理业务逻辑、数据处理以及与数据库或其他服务的交互。
Kubernetes服务:为了允许前端与后端通信,您可以为后端部署创建一个Kubernetes Service。该服务将为后端提供一个稳定的DNS名称和IP地址,使前端可以访问。反之亦然