对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

迁移到 Kubernetes 如何运作

Kubernetes Operator 可以将由 Ops Manager 或 Cloud Manager 在虚拟机或裸机上托管的部署迁移到 Kubernetes 中。迁移是实时且增量的。在整个过程中,您的部署会持续提供读取和写入服务。您可以使用正常的 MongoDB 复制功能,一次将一个节点从虚拟机迁移到 Kubernetes。

迁移依赖于标准的 MongoDB 复制,而不是数据复制工具。它分为三个阶段进行:

  • 扩展。您向现有副本集添加 Kubernetes 节点。Kubernetes 操作符将新节点创建为非投票节点,并从现有节点执行初始同步。

  • 提升。您将投票和优先级从虚拟机节点转移到 Kubernetes 节点。外部节点保留其在源自动化配置中已有的任何投票和优先级,直到您将其删除。

  • 削减。您一次删除一个虚拟机节点,在每次删除之间等待副本集达到目标状态。

当 Kubernetes 操作符托管 100% 的节点、spec.externalMembers 为空且所有数据都存储在 Kubernetes 持久卷申请项中时,迁移完成。届时,虚拟机上将不再有节点。

迁移工作流不会恢复快照,也不会使用 mongosync 或其他 Cluster-to-Cluster Sync 工具。Cluster-to-Cluster Sync 工具在切换时造成停机,缺乏对时间序列集合的支持,并且通常需要现场支持才能安全运行。基于复制的迁移避免了这些限制。您的部署可以保持可用,迁移支持与部署其他部分相同的集合类型,您可以使用 kubectl mongodb 插件自行控制此过程。

读取在迁移过程中始终可用。写入可能会在选举期间短暂失败,因此您的驱动程序必须使用可重试写入。如果读取目标移动,读取延迟可能会增加,因此请将 Kubernetes 集群与虚拟机在同一区域运行。对迁移的从节点(secondary node from replica set)运行的长时间游标会中断,因为没有静止模式。

在迁移过程中,您的部署以混合状态运行,节点分割在虚拟机和 Kubernetes 之间。Kubernetes 操作符仅在主动迁移期间将此混合省/市/自治区作为瞬态条件支持。迁移需要在整个期间在两个环境之间建立永久的双向网络连接。Kubernetes 操作符 不支持无限期地运行分割环境部署。

Kubernetes 操作符 不执行以下操作:

  • 将虚拟机下线。您将在迁移完成后亲自将其退役。

  • 回滚迁移。迁移一旦开始,就没有自动方法可以撤销。

  • 播种或预复制数据。所有数据移动都通过 MongoDB 复制进行。

  • 迁移 MongoDB Ops Manager 或 Cloud Manager 本身。只有 MongoDB 部署会迁移到 Kubernetes 中。