您可以使用 Kubernetes 操作符对各种 MongoDB 部署拓扑结构部署 MongoDB Search 和向量搜索。您选择的拓扑结构决定 Kubernetes 操作符如何将 mongot 进程部署并连接到 MongoDB 部署。
在部署之前,请使用此页面确认您计划的拓扑结构受支持。要确认所需的 MongoDB Server、mongot 和 Kubernetes 操作符版本,请参阅 搜索和向量搜索兼容性和要求。
部署维度
支持的拓扑结构是以下维度的组合:
MongoDB 集群拓扑结构。
mongot进程是为 MongoDB 副本集提供服务,还是为分片集群提供服务。对于分片集群,Kubernetes 操作符会为每个分片部署单独的mongot组。部署类型。您的 MongoDB 部署是在单个 Kubernetes 集群(单集群)中运行,还是跨多个 Kubernetes 集群(多集群)。在多集群拓扑结构中,中心集群中的单个 Kubernetes 操作符可以管理所有节点集群中的
mongot进程。负载均衡器模式。当您运行多个
mongot实例时,必须在mongod和mongot节点之间放置 L7 负载均衡器。您可以使用以下选项之一:托管负载均衡器。Kubernetes 操作符部署并配置 Envoy 代理。
非托管负载均衡器。您提供并配置自己的 L7 负载均衡器。
单个
mongot实例直接连接到mongod,不需要负载均衡器。MongoDB 源模式。MongoDBSearch 资源是使用
spec.source.mongodbResourceRef引用 Kubernetes 操作符托管的 MongoDB 资源(托管),还是使用spec.source.external配置连接(外部)。
支持的拓扑结构矩阵
下表列出每种部署维度组合的支持状态:
重要
MongoDB Enterprise 支持外部 MongoDB 源和多集群拓扑结构。MongoDB Community 仅支持 Kubernetes 操作符 在 Kubernetes 内部管理的副本集部署。
集群拓扑结构 | 部署类型 | 负载均衡器模式 | MongoDB 源模式 | 支持状态 |
|---|---|---|---|---|
副本集 | 单集群 | 托管 | 托管 | 受支持 |
副本集 | 单集群 | 托管 | 外部 | 受支持 |
副本集 | 单集群 | Unmanaged | 托管 | 受支持 |
副本集 | 单集群 | Unmanaged | 外部 | 受支持 |
副本集 | 多集群 | 托管 | 托管 | 不受支持 |
副本集 | 多集群 | 托管 | 外部 | 受支持 |
副本集 | 多集群 | Unmanaged | 托管 | 不受支持 |
副本集 | 多集群 | Unmanaged | 外部 | 不受支持 |
分片集群 | 单集群 | 托管 | 托管 | 受支持 |
分片集群 | 单集群 | 托管 | 外部 | 受支持 |
分片集群 | 单集群 | Unmanaged | 托管 | 受支持 |
分片集群 | 单集群 | Unmanaged | 外部 | 受支持 |
分片集群 | 多集群 | 托管 | 托管 | 不受支持 |
分片集群 | 多集群 | 托管 | 外部 | 受支持 |
分片集群 | 多集群 | Unmanaged | 托管 | 不受支持 |
分片集群 | 多集群 | Unmanaged | 外部 | 不受支持 |
拓扑结构考虑
在选择拓扑结构时,查看以下注意事项:
MongoDB Enterprise 仅支持外部 MongoDB 源和多集群拓扑结构。MongoDB Community 支持 Kubernetes 操作符在 Kubernetes 内部托管的副本集部署。
在多集群拓扑结构中,使用
spec.source.external配置 MongoDB 源,即使 Kubernetes 操作符管理 MongoDB 部署。多集群拓扑结构不支持spec.source.mongodbResourceRef。多集群拓扑结构需要托管式负载均衡器。Kubernetes 操作符仅在单集群拓扑结构中支持非托管式负载均衡器。
多集群拓扑结构要求中央集群与每个节点集群的 Kubernetes API 服务器之间具有网络连接。
有关其他部署限制,请参阅 mongot 部署限制。