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

迁移的网络要求

要将Ops Manager或Cloud Manager在虚拟机上管理的部署迁移到Kubernetes Operator 下的Kubernetes ,需要在虚拟机主机和Kubernetes Pod 之间建立双向网络连接。您(而不是Kubernetes Operator)预配此连接。

这种连接完全取决于您自己的网络设置,包括网络拓扑结构、防火墙规则、DNS 配置和云提供商。正因为如此,具体的普遍指导是不可能的。本页的其余部分介绍Kubernetes Operator 自动检查哪些内容、不检查哪些内容,以及用于将Kubernetes Pod 公开给虚拟机的配置。

空运行连接验证器作业会检查是否可从Kubernetes环境访问虚拟机成员。它不会检查从虚拟机到Kubernetes 的反向方向。您必须使用本页后面提供的与设置相关的检查清单,自行验证该指示。

要让虚拟机节点访问Kubernetes Pod,请使用 spec.externalAccess。这与Kubernetes Operator 在迁移之外使用的外部访问机制相同:它为每个 Pod 创建一个 LoadBalancer 或 NodePort,将 Pod 暴露在Kubernetes集群之外。

(可选)将 spec.externalAccess.externalDomain设立为虚拟机节点可以解析的主机名。您拥有该主机名的 DNS设置; Kubernetes Operator 不会为您创建或管理DNS 记录。

重要

如果在此部署中使用MongoDB Search 或 Vector Search,请勿设立externalDomainMongoDBSearch 不支持设置 externalDomainMongoDB资源。请单独使用 spec.externalAccess。要学习;了解更多信息,请参阅MongoDB Search 与迁移的交互。

警告

创建集群后无法删除externalDomain。在设立此字段之前,请确认您的主机名和 DNS 策略。

Kubernetes节点主机名遵循 <metadata.name>-0.<spec.externalAccess.externalDomain>模式,每增加一个节点,数字索引就会递增 1。

没有任何单个命令可以保证在两个方向上正确配置连接。使用此清单查看您的设置,并使每个项目适应您自己的网络:

  • 确认Kubernetes成员的主机名可从虚拟机成员解析。

  • 确认可从虚拟机访问Kubernetes节点或 LoadBalancer IP地址。

对于分片集群,您可以为每个组件配置外部访问权限:

  • spec.externalAccess 仅配置 mongos

  • spec.mongos.externalAccess 取代 mongos 的根级字段。

  • spec.shard.externalAccessspec.configSrv.externalAccess 都必须设立为公开分片的每个 Pod 和配置服务器副本集。

Kubernetes Operator 会自动生成名为 <metadata.name>-cluster-connection-string 的连接字符串Secret。此 Secret 不包含任何凭证,并且Kubernetes Operator 在迁移期间发生成员资格变更时,会使其与活动节点保持同步。

将应用程序指向此 Secret 而不是硬编码的连接字符串。这样做意味着迁移期间的成员资格更改不需要对应用程序进行硬切换。

在将部署扩展到Kubernetes之前,请配置外部访问权限和 externalDomain。 Kubernetes Operator 不支持在迁移开始后添加这些设置。