谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭Close

在 Kubernetes 上运行 MongoDB

by Canonical on 26 December 2023

通过容器,能够以轻量级、可移植且一致的方式打包应用及其依赖项。容器提供隔离的环境,确保应用在不同环境中可靠地运行。由于容器能够带来诸多好处,企业和精通技术的个人都使用容器技术。然而,随着容器使用量的增加,容器编排工具已成为管理集群的必要工具。

Kubernetes 简称 k8s,是广为人知的容器编排工具,并且已发展为功能丰富的云原生平台。Kubernetes 帮助管理容器的生命周期,尤其是在大型动态环境中。Kubernetes 能够自动实现容器化工作负载和服务的部署、联网、扩展与可用性。运行少量容器——轻量级并且通常具有短暂性——很容易手动完成。但是,如果没有容器编排平台的自动化功能,在生产环境中大规模管理容器将是一个严峻的挑战。

在数据库方面,组织想要在公共、私有和混合环境中构建和运行可扩展的数据库应用。因此,MongoDB 等容器化数据库可在 Kubernetes 中运行,并且能够受益于可移植性,帮助团队最大限度减少供应商锁定,获得 DevOps 友好性、可扩展性和成本效益。

为何在 Kubernetes 上运行 MongoDB?

在 Kubernetes 上运行 MongoDB 可能很复杂,但十分有价值,因为这允许您对 MongoDB 实例进行容器化和编排,从而实现可扩展性和弹性,并简化管理。下面列出了一些好处: 

可扩展性:通过添加或移除数据库实例的副本,Kubernetes 允许更轻松地水平扩展 MongoDB。这样,当您的应用增长或使用量激增时,您可以动态处理增加的工作负载和流量。

高可用性:Kubernetes 提供副本集和 StatefulSet 等特性,以确保 MongoDB 实例高度可用。如果节点出现故障,Kubernetes 可自动重新调度 pod,以维持所需数量的副本,从而帮助防止停机。

编排:Kubernetes 对底层基础设施进行抽象处理,以便简化 MongoDB 部署的管理和编排。在声明式配置文件中,您可以定义您的 MongoDB 资源,包括 pod、服务和存储。

在 Kubernetes 中运行 MongoDB 可带来诸多好处,但是要使生产就绪型数据库在 Kubernetes 中运行,您究竟需要什么?除了上面列出的考虑因素,还需要考虑安全性、部署就绪性、备份和还原、监控等多个因素。

Ubuntu 用于在 Kubernetes 上托管 MongoDB

目前,Canonical 正在维护一个名为 Charmed MongoDB 的项目,这是 K8s 运算符,其中包含的代码接管自动化任务,以管理 Ubuntu 中托管的 MongoDB。该 K8s 运算符也称为 K8s charm,这是封装在可重用软件包中的业务逻辑,能够自动处理应用生命周期的方方面面,在本例中是 MongoDB。 

该运算符基于 Juju,这是适用于软件运算符的开源编排引擎,能够在任意基础设施上以任意规模部署、集成应用并管理其生命周期。

为支持 Kubernetes 中运行的应用,Canonical 还维护另外两个经过 CNCF 认证的 Kubernetes 发行版: Charmed Kubernetes MicroK8s,以帮助简化和加速 Kubernetes 的部署。

开始使用

Charmed MongoDB K8s 运算符为 MongoDB 提供从第 0 天到第 2 天的自动操作管理。Charmed MongoDB 项目正在持续开发中;随着时间推移,我们将不断提供更丰富的功能。 

开始前,您必须具备以下环境:Ubuntu 操作系统、一组最低限度的 CPU、存储和 RAM。您还必须熟悉基本终端命令和 MongoDB 概念,比如复制和用户。 

之后,您需要使用 Microk8s Juju 设置环境。

然后,您可以使用 Charmed MongoDB 管理以下操作:

  • 使用单个命令部署 MongoDB。
  • 直接访问管理员数据库。
  • 通过复制增加可用性。
  • 更改管理员密码。
  • 通过 Juju 关系自动创建 MongoDB 用户。
  • 通过 TLS 实现安全通信。

学习在您的机器中使用 Charmed MongoDB(K8s 运算符)

结论

在公共、私有和混合环境中运行数据库集群可提供多项好处。Kubernetes 提供额外的优势,包括可移植性、减少供应商锁定、DevOps 友好性、可扩展性和成本效益。

虽然在 Kubernetes 中运行 MongoDB 具有多项优势,但值得注意的是,在容器化环境中管理分布式数据库也面临挑战,要想实现成功部署,离不开仔细规划、监控和优化。此外,了解最新的最佳实践和不断发展的技术有助于充分利用该方法。

Canonical 为 MongoDB 等数据库提供安全补丁、支持、咨询和托管服务,因此您可以在 Kubernetes 中无缝部署和运行数据库。欢迎联系我们以了解更多信息。

商标通知

“MongoDB” 是 MongoDB Inc. 的商标或注册商标。其他商标是其各自所有者的财产。Charmed MongoDB 不受 MongoDB, Inc. 的赞助和支持,与 MongoDB, Inc. 也没有附属关系。

订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

RAG 是什么?

在 2020 年的一篇论文中,Patrick Lewis 和他的研究团队引入了术语 RAG,即检索增强一代。该技术通过利用外部知识来源,如文件和广泛的数据库,增强了生成式 AI 模型。RAG 填补了传统大型语言模型(LLM)中的一个空白。传统的模型依赖于已经包含在其中的静态知识,而 RAG 则结合了最新信息,作为 LLM 的可靠事实来源。虽然 LLM 可以在没有 RAG 的情况下快速理解和响应提示,但它们通常不能提供最新或更具体的信息。 RAG 的一个实际应用是对话代理和聊天机器人。借助 RAG 模型,这些系统能够从外部来源获取上下文相关的信息,从而增强自身性能。这种能力确保客户服务聊天机器人、虚拟助理和其他对话界面在交互过程中提供准确和信息丰富的响应。另一个用例是在高级 […]

Canonical 宣布推出 12 年 Kubernetes LTS

Canonical 的 Kubernetes LTS(长期支持)将支持 FedRAMP 合规性,并在裸机、公共云、OpenStack、Canonical MicroCloud 和 VMware 上获得至少 12 年的承诺安全维护和企业支持。 Canonical 宣布,从 Kubernetes 1.32 开始,将提供 12 年的安全维护和支持。新版本易于安装、操作和升级,具有一流的开源网络、DNS、网关、度量服务器、本地存储、负载平衡器和入口服务。Canonical Kubernetes 使客户能够按照自己的节奏进行升级,对于喜欢快速行动的组织,将每四个月发布一次新的上游版本,对于需要长期支持环境的组织,则提供 12 年的承诺。 “Kubernetes 的不断升级是企业团队 […]

预装且完全维护的数据应用程序

引入可信开源数据库容器  不要再说 “云原生还很遥远” 了。Kubernetes 刚刚庆祝了其 10 周年纪念,在最新的 CNCF 年度调查中,76% 的受访者表示他们已经在大部分或全部产品开发和部署中采用了云原生技术,例如容器。云原生并不遥远 —— 它已经到来。 数据密集型工作负载也不例外。恰恰相反,Kubernetes 专家之声 2024 年报告发现,97% 的组织在云原生平台上运行数据工作负载,72% 的数据库和 67% 的分析服务在 Kubernetes 上运行。  数据库容器正在推动可扩展性、灵活性、操作简单性和成本方面的重大改进。但是,在容器上管理这样的状态管理解决方案(通常使用多个开源组件构建)也给站点可靠性工程师、平台工程师和首席信息安全官等带来了不小的难 […]