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

迁移限制和不支持的场景

在计划将自管理部署迁移到 Kubernetes 之前,请查看本页面中的限制。有些限制会完全阻碍迁移,而另一些限制则需要您围绕缺失的功能进行规划。

MongoDB Ops Manager 或 Cloud Manager 项目必须恰好包含一个部署。如果项目包含多个部署,kubectl mongodb 插件会报错。

如果您的项目包含多个部署,请在迁移之前将它们分割为单独的项目。要了解具体操作,请参阅 将 MongoDB 部署迁移到新项目 中的 MongoDB Ops Manager 文档。

其配置服务器也由其一个分片支持的分片集群无法迁移。Kubernetes 操作符检测到嵌入式配置服务器,并在导入时拒绝迁移。

试运行仅验证从 Kubernetes 到虚拟机的连接性。它不会自动检查虚拟机到 Kubernetes 的入站连接。在依赖连接方向之前,请亲自验证连接方向。

迁移一旦开始,就没有自动化的方法可以撤销。请在开始之前规划好迁移并进行备份,因为您无法通过插件或操作符进行回滚。

若要手动回滚正在进行的迁移:

1

这一步至关重要。不要跳过它。

2

这一步至关重要。不要跳过它。

3

直接在 MongoDB Ops Manager 或 Cloud Manager 中编辑自动化配置。

警告

如果您在 Kubernetes Operator 仍在运行时删除 MongoDB 资源,Kubernetes Operator 不会删除 Ops Manager 或 Cloud Manager 中的项目,以保护外部节点。但是,Kubernetes Operator 会自动删除该资源的 StatefulSet 和 Pod。根据迁移的进度,删除这些 Pod 可能会导致副本集失去投票大多数。

迁移仅通过 MongoDB 复制来移动数据。Kubernetes 操作符 不会通过任何其他机制将数据植入或预复制到新的 Kubernetes 节点中。

删除外部节点是一项手动操作。您需要一次从 spec.externalMembers 中删除一个条目。操作符不会为您自动执行此步骤。

此工作流仅迁移由 MongoDB Ops Manager 或 Cloud Manager 托管的 MongoDB 部署。它不会迁移 Ops Manager 或 Cloud Manager 本身。

在迁移过程中,请勿在迁移步骤之外对部署进行版本或配置更改。在迁移期间,也不支持通过 MongoDB Ops Manager 用户界面进行并发编辑。

在迁移过程中,预计某些字段会发生变化:

  • 节点数以及 memberConfig 中的 votes 和 priority 字段会随着您扩展、提升和修剪节点而发生变化。

其他设置在整个迁移过程中必须与源部署匹配,并且不得更改:

  • MongoDB 版本

  • 特征兼容性版本

  • 端口

  • 身份验证模式

  • 内部集群身份验证

在迁移之前请规划好这些设置,因为 Kubernetes Operator 不会在新的 Kubernetes 节点上复制它们:

  • secondaryDelaySecs 在延迟节点上。

  • 隐藏节点上的隐藏设置。

  • buildIndexes 在节点上设置为 false。

如果您在虚拟机上运行分析节点或延迟节点,请在 Kubernetes 节点上自行重新配置相应设置,在它们加入副本集后。

Kubernetes 操作符 不支持对 MongoDBMultiCluster 资源进行迁移。spec.externalMembers 字段有意未添加到该 CRD。不存在 MongoDBProject CRD。