谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭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. 也没有附属关系。

订阅博客文章

订阅您感兴趣的主题

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

查看更多内容

Charmed MongoDB 全面上市

Canonical 发布 MongoDB® 企业版解决方案 Charmed MongoDB,其提供先进的自动化功能、多云功能和全面的支持 MongoDB® 是全球使用最广泛的数据库之一。它提供强大的扩展、协调和容错功能,成为了各种规模和各个行业企业组织的热门之选。Charmed MongoDB 是 MongoDB® 社区版的企业直接替代版,具有企业组织在其生产环境中需要用到的高级功能。 Canonical 产品副总裁 Cedric Gegout 称:“Charmed MongoDB 是我们开源数据解决方案产品组合中的一员,旨在满足现代部署的需求。”“企业组织可以放心地部署 Charmed MongoDB,他们知道 Canonical 会提供在任何云环境中的性能承诺以及长达 […]

Canonical 为任何 open source Docker 镜像提供 12 年长期支持

“Everything LTS 计划”— Canonical 将根据客户的规格要求构建 distroless Docker 镜像,其中包括 Ubuntu 中未打包的上游组件,并在 24 小时内修复关键的 CVE 漏洞,在 RHEL、Ubuntu、VMware 或公共云 K8s 上畅享长达 12 年以上的支持。 Canonical 将其 LTS 产品扩展到 Ubuntu 的 “deb” 包以外,并推出了一项新的 distroless Docker 镜像设计与构建服务,该项服务为任何开源应用程序或依赖项均提供 12 年的安全维护,无论该软件是否是 Ubuntu 中已打包的软件。 「Everything LTS 计划意味着 CVE 维护将覆盖您的整个开源依赖项树,包括 Ubun […]

您每隔多久会在 Linux 上安装一次安全补丁?

定期应用补丁对于维护安全的环境至关重要,但对于确保 Linux 资产的安全性,并不存在一劳永逸的办法。那么,如何平衡更新频率和运行稳定性呢?有一些策略可通过合规且安全的方式实现安全补丁自动化,甚至适用于限制和监管最严格的环境。在确定安全补丁策略时,有必要了解 Canonical 软件更新发布时间表和安全补丁覆盖周期时间窗口等重要信息。笔者在近期主持的一场在线研讨会和安全问答活动中,解释了如何尽量减少补丁应用频率或尽量缩短未修复漏洞被利用的时间。本篇文章将概述笔者在这次网络研讨会上的主要观点,并说明确定更新计划时最重要的考虑因素。  针对 Linux 内核的安全补丁 Ubuntu 中有两种类型的内核,这些内核有两种打包方式。两种内核类型为通用版(GA)内核和变体内核。两种打 […]