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