是否建议在生产环境中使用Kubernetes运行集群数据库?

Jav*_*r81 7 mysql database production-environment kubernetes

在生产环境中将Kubernetes用于集群数据库(例如MySQL)是否合理?

有一些示例配置,例如mysql galera示例.但是,大多数示例都不使用持久卷.据我所知,持久卷必须驻留在某些共享文件系统上,如此处所定义的Kubernetes类型的持久卷.共享文件系统不保证pod的数据库文件将是托管pod的计算机的本地文件.它将通过网络访问,这是相当慢的.此外,例如,MySQL和NFS存在问题.

这对于测试环境可能是可接受的.但是,我应该在生产环境中做什么?在Kubernetes之外运行数据库集群并仅使用Kubernetes运行应用程序服务器更好吗?

Ani*_*han 4

Kubernetes 项目引入了PetSets,这是一种新的 pod 管理抽象,旨在运行有状态应用程序。目前它是一个 alpha 功能(从版本 1.4 开始)并且正在快速发展。这里列出了我们进入测试版时遇到的各种问题。引用有关何时使用 petsets 的部分:

PetSet 确保在任何给定时间都有指定数量的具有唯一身份的“宠物”正在运行。宠物的身份包括:

  • 稳定的主机名,可在 DNS 中使用
  • 序数索引
  • 稳定存储:链接到序号和主机名

除了上述功能之外,它还可以与其他几个功能相结合,帮助部署集群有状态应用程序并管理它们。例如,与动态卷配置相结合,它可以用于自动配置存储。

有几个可用的 YAML 配置文件(例如您引用的文件),使用 MySQL 和其他数据库的 ReplicaSets 和部署,这些数据库可能在生产中运行,并且也可能以这种方式运行。然而,PetSet 预计将使运行这些类型的工作负载变得更加容易,同时支持升级、维护、扩展等。

您可以在此处找到一些带有 petsets 的分布式数据库的示例。


大规模实现配置联网和非本地持久卷(例如 GlusterFS)的优势。然而,对于相对较小的集群,有一项建议在未来允许本地存储持久卷。