新闻稿




MongoDB,满足Kubernetes


Kubernetes与Docker一起转换了可以打包和部署的分布式系统的方式。

在过去,部署多节点分布式系统是一项重大工作。通常,需要专用的硬件和专用的网络配置来允许节点进行通信。建立分布式系统需要一个费力的软件安装和配置过程。通常需要几周或几个月的时间。

虚拟化的出现减少了一些这种复杂性。而不是获取专用硬件,可以简单地通过适当的配置旋转新的虚拟机。但是,分布式软件安装的所有复杂性都仍然存在。

Docker为虚拟化环境提供更方便的模型,但本身并不解决与容器之间的交互有关的任何问题。但是,通过提供用于部署小虚拟化组件的标准模型 - 容器-Docker提供构建块,以便更好地定义和部署分布式系统。

Kubernetes已成为最受欢迎的基于容器的应用程序的框架。Orchestration涉及多个集装箱内微服务的创建,配置,缩放和管理,以提供集成的分布式应用程序。使用Kubernetes,可以轻松地部署并迁移复杂的应用程序拓扑。

数据库服务器传统上在一定程度上超出了虚拟化和容器化环境的范围。传统的单片数据库服务器需要对高速持久存储的专用访问,这在虚拟化环境中很难提供。而且,由于遗留数据库服务器往往运行在单个大型主机上,它们不容易适应容器化的向外扩展体系结构。

但是,现代数据库是越来越多的分布式系统,由多个节点运行的多个进程组成。Cassandra,cockroachdb和mongodb是众所述的数据库的示例,即很少被部署为单实例数据库服务器。

使用MongoDB,即使是最简单的部署也通常是由单个主节点和多个辅助节点组成的副本设置。更先进的MongoDB部署包括多个“分片”副本集合路由器(Mongos)进程以及包含配置信息的特殊副本集。最简单的MongoDB分叉部署将包括至少10个在多个节点上运行的进程。

手动搭建分布式MongoDB集群是一个复杂且容易出错的过程。然而,MongoDB提供了一个Kubernetes操作符,它允许在Kubernetes集群中非常容易地建立这样的部署。“操作员”是一个在Kubernetes集群中运行的控制器程序,包含用于建立MongoDB集群拓扑的特定MongoDB逻辑。只需向操作员提供一个配置文件,操作员就可以完成剩下的工作——创建和配置MongoDB节点,设置最佳实践安全性,以及处理节点之间的连通性。

使用Kubernetes运算符,可以在几分钟内启动复杂的分片MongoDB集群。由于Kubernetes可在所有云平台上提供,即使在桌面上,也可以轻松配置测试和生产环境。此外,基于Kubernetes的MongoDB群集可以按需按需进行物理Kubernetes平台的约束范围。Kubernetes还监视容器的健康,并重新启动任何失败的节点。

MongoDB公司为MongoDB的社区版和Enterprise Edition的其他运营商提供Kubernetes运营商。企业版运营商包括支持备份和高级安全功能等企业功能。

对于使用MongoDB Atlas Cloud Service的人,MongoDB也为Atlas提供了Kubernetes运算符。此操作员允许从Kubernetes环境中访问基于Atlas基于云的服务。尽管Atlas本身不会在Kubernetes集群中运行,但操作员允许在Kubernetes环境中的应用程序提供Atlas数据库服务。

Percona还提供Kubernetes运营商,以支持他们的MongoDB分发。MongoDB的Percona分配是一个开源分布,包括MongoDB企业版的许多功能。Percona提供基于此分发支持的专业服务。Percona Kubernetes运算符支持MongoDB公司运营商的所有功能以及一些额外的功能。如果您希望在Kubernetes环境中运行MongoDB,则佩尔科纳运营商肯定值得调查。