生产环境中使用Kubernetes运行集群数据库是否推荐?

7
在生产环境中,使用Kubernetes这样的集群技术来管理像MySQL这样的数据库集群是否合理呢?例如,有一些示例配置,如mysql galera example。但是,大多数示例都没有使用持久卷。据我所知,持久卷必须驻留在某些共享文件系统上,如Kubernetes types of persistent volumes所定义的那样。共享文件系统不能保证Pod的数据库文件是本地主机,而是通过网络访问,速度较慢。此外,MySQL和NFS存在问题。
这在测试环境中可能是可以接受的。但是,在生产环境中该怎么办呢?是将数据库集群运行在Kubernetes之外,并仅在Kubernetes上运行应用程序服务器更好呢?
1个回答

4
Kubernetes项目引入了PetSets,这是一种新的pod管理抽象,旨在运行有状态的应用程序。目前它是一个alpha功能(截至版本1.4),并且正在快速发展。我们转向beta时列出了各种问题here。引用关于何时使用petsets的部分:
PetSet确保在任何给定时间运行指定数量的具有唯一标识的“宠物”。 Pet的标识由以下内容组成:
  • 稳定的主机名,在DNS中可用
  • 序数索引
  • 稳定存储:链接到序数和主机名
除此之外,它还可以与其他几个功能配合使用,帮助部署集群有状态应用并管理它们。例如,与动态卷配额结合使用,可以自动进行存储配额。
有几个YAML配置文件可用(如您所引用的文件),使用MySQL和其他数据库的ReplicaSets和Deployments可以在生产环境中运行,并且可能正在以这种方式运行。然而,PetSets预计将使运行这些类型的工作负载变得更加容易,同时支持升级、维护、扩展等操作。
您可以在这里找到一些使用PetSets的分布式数据库示例。

提供网络化和非本地化(如GlusterFS)的持久卷的优势在规模上得以实现。然而,对于相对较小的集群,未来有提议允许使用本地存储持久卷



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接