多应用程序作为集群中的Docker容器,处理MySQL的方法

大部分有关设置Docker容器的文章似乎都是围绕着将应用程序分解成微服务并将其分配到各种容器并将其部署到集群中的想法而编写的。

我想找出最好的方法来处理为不同的客户端编写的多个不相关的应用程序的数据库(例如mySQL),部署到同一个集群中。

假设我有10个不相关的小应用程序(如wordpress),都需要访问mySQL数据库。 我可以:

  1. 将应用程序作为容器部署到群集中,仅包含应用程序代码,设置专用的mySQL服务器或Google Cloud SQL实例,并要求每个应用程序容器作为第三方服务连接到数据库。

  2. 将应用程序作为容器部署到群集中。 对于每个应用程序,还将一个单独的数据库容器部署到群集中并将两者连接起来。

  3. 将单独的数据库容器部署到群集中,并将此容器链接到群集中的各个应用程序容器。

哪种解决scheme最适合应用程序体系结构devise,哪些最适合计算机资源? 我有这样的感觉,即部署多个MySQL容器(每个应用程序一个)可能是最好的devise,但它可能不是最有效的资源,因为我们将有一堆的MySQL容器运行。

为每个应用程序集成数据库似乎是“docker的方式”,并提供更好的隔离和可移植性

docker的方式不是每个应用程序的数据库,而是每个容器的服务。 当你不在mysql容器中运行另一个服务(app / ssh / monitoring …)时,MySQL就是一种服务。

所以每个应用程序一个数据库或一个数据库之间的决定取决于您。

我的个人select是第三个:

  1. 将单独的数据库容器部署到群集中,并将此容器链接到群集中的各个应用程序容器。

我将kubernetes与一个用作所有应用程序的数据库服务器的postgres容器一起使用。

我更喜欢这个select,因为作为一个OP的angular度来看,备份/复制/应用维护比拥有30个不同的db服务器+ 30 * slave + 30 *外部池+ 30 *监控工具等更容易。同样在我的情况下,更好的资源使用情况。

但是我保留将数据库移动到另一个专用数据库服务器容器的可能性,以防应用程序使用太多的资源或应用程序已经使用了太多的数据库。