在 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. 也没有附属关系。
订阅博客文章
查看更多内容
Canonical 与 Ubuntu RISC-V – 2025 年回顾及 2026 年展望
2025 年:从 RISC-V 技术支持到实际执行 2025 年是 RISC-V 从准备就绪转向实际应用的一年。这段历程实属不易。多年前始于早期架构探索与技术支持的工作,如今已成熟落地为真实的芯片、系统与部署应用。特别是,RVA23 提供了一个稳定且可预期的基准,我们能够与更广泛的合作伙伴生态系统保持一致。 在 Canonical,我们致力于让 RISC-V 成为所有希望采用它的用户的可行选择。我们审慎采取措施,与生态系统及合作伙伴保持一致,成为值得信赖的软件合作伙伴,让 RISC-V 实用、可扩展且具备生产就绪能力。 我们的目标是提供一个稳定、可预期、生产级的 Linux 平台,让芯片厂商、原始设备制造商、原始设计制造商和开发者能够放心地在此基础上进行开发。 接下 […]
8.8 万亿美元的成本优势:开源软件如何降低 IT 成本
众所周知,开源软件可降低 IT 成本。但在 2025 年,高性价比只是其价值的一部分。Linux Foundation 最新报告《开源技术的战略演进》显示,开源技术已从一项战术性的成本节约举措,发展成为支撑企业级投资的关键任务基础设施,并由此为企业带来更优异的业务成果。 这一转型的背后有学术研究佐证:研究估算,若没有开源技术,企业开发支撑业务运转的软件所需成本将增加约 3.5 倍,额外支出高达 8.8 万亿美元。[1] 开源技术:从“免费替代方案” 到核心基础设施 Linux Foundation 2025 年开源生态现状调查显示,开源技术已深度融入企业技术栈的各个层面,成为全球 IT 运营的核心基石。事实上,在受分析的技术栈中,超 55% 采用了基于 Linux 的操 […]
Canonical 推出适用于 WSL 的 Ubuntu Pro
适用于 WSL 的 Ubuntu Pro 为 Windows 系统中运行的 Ubuntu 24.04 LTS WSL 实例提供一站式安全维护与企业级技术支持。该订阅服务还能为系统管理员提供全面的管理功能。 今日,Canonical 公司宣布适用于 WSL 的 Ubuntu Pro 服务正式全面上市,用户可通过 Microsoft Store 进行安装。源代码及测试版也可在 GitHub 获取。 Canonical 公司与 Microsoft 建立了良好的合作关系,携手打造优质的 WSL 使用体验。本次合作成果将惠及那些借助 WSL 开发生产级 Linux 解决方案的企业开发者。 Craig Loewen,Microsoft WSL 产品经理 Ubuntu Pro 为桌面端 […]