当前位置: 首页 > 知识库问答 >
问题:

Kubernetes多个数据库实例或高可用性单个实例

方飞白
2023-03-14

我有一个运行多个应用程序(服务)的Kubernetes环境。现在我有点困惑如何设置MySQL数据库实例。

根据不同的来源,每个微服务都应该有自己的数据库。我应该在高可用性模式下创建一个运行多个数据库的MySQL statefulset,还是应该为每个运行一个数据库的应用程序(服务)部署一个单独的MySQL实例

我的第一个想法将是第一个选择,因此HA应该在哪里有用?我想听听大家对此有什么不同的看法。

共有1个答案

权玉泽
2023-03-14

有点主观的问题,但这是我们设置的。希望这能帮你立案。我肯定有人会有不同的看法,这也可能是同样有效的:

我们部署了大约70个微服务,每个微服务都有自己的数据库(“模式”)和自己的JDBC URL(通过服务定义)。每个微服务都有自己的endpoint和凭据,我们在微服务之间不共享这些endpoint和凭据。因此实际上,就模式而言,我们保持了跨微服务的设计完全独立。

然而,在部署方面,我们选择使用单个数据库实例来托管所有数据库(或“模式”)。虽然在技术上,我们可以将每个数据库部署在其自己的数据库实例上,但我们选择不这样做的主要原因如下:

    null

如果您将MySQL部署为Docker容器,请使用statefulset来实现持久性。定义一个外部pvc,这样您就可以始终保留数据,无论您的POD或集群发生了什么。当然,如果您运行“主动-主动”,您将需要确保节点之间的集群,但我们确实在“主动-被动”模式下运行它,因此我们将replica计数保持为1,前提是我们只在测试环境中使用MySQL Docker容器替代方案,以节省外部DBaaS服务的成本,而不需要外部DBaaS服务。

 类似资料:
  • 问题内容: 我有一个Redis实例,其中有两个数据库。现在,我想设置第二个实例并复制第一个实例,但是第二个实例应该仅具有一个数据库,并且仅复制第一个实例中的db 0。当我尝试执行此操作(为第二个实例设置)时,我在Redis日志文件中收到以下错误消息: 我尝试使用redis-dump,但是尝试将生成的转储导入新实例时出现错误。(我认为与2 dbs和1 db无关,而是redis-dump中的一个错误,

  • 问题内容: 我对使用Docker容器的最佳做法有疑问。 我开发的每个应用程序都需要一个数据库。现在我的问题是我应该使用一个带有多个数据库的mysql docker实例还是应该为每个数据库创建一个实例。我为每个数据库创建一个实例时看到的缺点是我无法拥有有权访问所有数据库的用户。我出于安全原因知道这是一个专家,但是当我尝试从客户端进行备份时,需要在每个实例中进行备份。而且不是多个实例占用大量资源(尽管

  • 然而,在有些情况下的应用程序有一个library或子项目也使用DBFlow来管理其数据库时候。这是一个重要的方案,因为它可以让你在用多个应用程序中重复使的数据库。此前,DBFlow不支持这种用例,并试图这样做的时候会失败。 为了解决这个问题,你必须确保数据库的module被加载。幸运的是,这是一个非常简单的过程。 for KAPT: 通过传递,再把它添加到创建 模块。 最后,指示DBFlow加载包

  • 我有一个关于使用docker容器的最佳实践的问题。 我需要为我开发的每个应用程序一个数据库。现在我的问题是,我是应该使用一个包含多个数据库的mysql docker实例,还是应该为每个数据库创建一个实例。我认为为每个数据库创建一个实例的缺点是,我不能让一个用户访问所有数据库。我知道这是出于安全原因,但当我尝试从客户端备份时,我需要在每个实例中进行备份。多个实例使用的资源开销不是很大吗(虽然mysq

  • 我们有一个Spring Boot Restful API,它需要从两个不同的Elasticsearch实例(在不同的服务器上)获取数据,一个用于“共享”数据(上面有大约5个不同的索引),一个用于“私有”数据(有大约3个不同的索引)。目前只针对“私有”数据实例运行,一切都很好。但我们现在需要获取“共享”数据。 在我们的Spring Boot应用程序中,我们启用了如下Elasticsearch存储库