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

  1. 博客
  2. 文章

Canonical
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. 也没有附属关系。


查看更多内容

全新工具 Workshop 上线:一条命令即可在 Ubuntu 中启动沙箱开发环境

开发者如今可在智能体 AI 等前沿工作流程中,获得环境统一、可复现的开发体验 Canonical 正式发布 Workshop,该解决方案可通过单条命令快速启动开发环境。只需配置一次,此开发环境即可在多台设备上复现使用。这意味着各类开发设备与部署流水线可保持统一工作流程,并可大幅减少管理依赖关系所花费的时间。...

Canonical 技术案例 – 彻底解决 12 年老旧代码中的 Linux 性能漏洞

部分支持案例处理起来十分简单。另一些案例则要深入老旧遗留代码,一处逻辑缺陷就能悄无声息让常规指令引发严重性能故障。本系列将介绍 Canonical 技术支持与持续工程团队如何协作,排查、修复并向上游提交仅靠常规故障排查无法解决的疑难问题。在第二篇帖子中,libnss-db 中一处存在 12 年之久的漏洞导致 getent...

借助全新 NVIDIA OpenShell Snap,在 Ubuntu 上安全管控 AI 智能体工作流

NVIDIA 发布经过验证的 OpenShell Snap 软件包,用于在 Ubuntu 上安全管控 AI 智能体工作流 Canonical 在 COMPUTEX 宣布与 NVIDIA 达成全新合作,将面向智能体的 NVIDIA OpenShell 运行时直接集成至 Ubuntu 生态系统。Canonical 将 OpenShell 封装为 Snap...

使用 MAAS 部署 VMware 虚拟机管理程序

多数现代数据中心本身均为异构架构。VMware 环境常与容器平台、数据库及其他裸机业务负载共存,多年运行于同一套硬件之上。服务器一次性采购,但会随业务需求变化调整承载业务。 然而,ESXi(VMware 虚拟机管理程序)的配置通常由独立流程负责。主机通过 VMware 工具、自定义脚本或专为将部署 ESXi...