Puedes implementar MongoDB Search y búsqueda vectorial en tu clúster de Kubernetes para construir potentes experiencias de búsqueda directamente en tus aplicaciones. Utilizando MongoDB Search y Vector Search, puedes crear tanto funciones tradicionales de búsqueda de texto como funciones de búsqueda vectorial impulsadas por IA que se sincronizan automáticamente con una base de datos MongoDB on-premises. Esto elimina la necesidad de mantener sistemas separados sincronizados, al tiempo que se ofrece funcionalidades avanzadas de búsqueda. Para obtener más información, consulte:
Para activar las capacidades de búsqueda como la búsqueda de texto completo y la búsqueda semántica en implementaciones locales, debes implementar el proceso de MongoDB Search y búsqueda vectorial (mongot) y conectarlo con la implementación de tu base de datos MongoDB (mongod). La implementación de mongot es opcional y solo es necesaria si planea aprovechar las funcionalidades de búsqueda que ofrece.
Los procesos de la base de datos MongoDB (mongod) actúan como el proxy para todas las consultas de búsqueda para mongot. El mongod reenvía la query al mongot, que procesa la query. El mongot devuelve los resultados de la query al mongod, que luego te envía los resultados a ti. Nunca interactúas directamente con el mongot.
Cada proceso mongot tiene su propio volumen persistente que no se comparte ni con la base de datos ni con otros nodos de búsqueda. El almacenamiento se utiliza para mantener índices que se compilan a partir de los datos obtenidos continuamente de la base de datos. Las definiciones del índice (metadatos) se almacenan en la propia base de datos.
El mongot realiza las siguientes acciones:
Gestiona el índice.
El
mongotes responsable de actualizar las definiciones de índices en la base de datos.Obtiene los datos de la base de datos.
Los nodos
mongotestablecen conexiones permanentes con la base de datos para actualizar los índices en tiempo real.Procesa consultas de búsqueda.
Cuando
mongodrecibe una consulta$search,$searchMeta, o$vectorSearch, dirige la consulta a uno de los nodosmongot. Elmongotque recibe la query la procesa, agrega los datos y envía los resultados amongod, que los reenvía al usuario.
Los componentes mongot están estrechamente acoplados a un único set de réplicas de MongoDB y no pueden compartirse entre varias bases de datos o sets de réplicas. Eso significa que una implementación de conjunto de réplicas tiene sus propios nodos de búsqueda dedicados.
La conectividad de red entre mongot y mongod va en ambas direcciones:
mongotestablece la conexión con el set de réplicas para obtener los datos que se utilizarán en la creación de índices y la ejecución de queries.mongodse conecta amongotpara reenviar operaciones relacionadas con la búsqueda, como la gestión de índices y la consulta de datos.
MongoDB Search and búsqueda vectorial implementación
No hay muchas diferencias entre la arquitectura de implementación de búsqueda con o sin el Operador de Kubernetes. El Operador de Kubernetes simplifica los pasos necesarios para implementar nodos de búsqueda totalmente funcionales, especialmente cuando la base de datos también es gestionada por el Operador de Kubernetes.
Para implementar, aplica el Recurso Personalizado (CR) MongoDBSearch, que el Operador de Kubernetes recoge y comienza a desplegar pods mongot y solicita el almacenamiento persistente especificado en el spec. La MongoDB Search y la búsqueda vectorial implementadas mediante el Operador de Kubernetes pueden dirigirse tanto al set de réplicas de MongoDB implementado por el Operador de Kubernetes dentro del mismo clúster de Kubernetes como a una base de datos MongoDB externa totalmente independiente. Para aprender cómo implementar y configurar mongot para su uso:
Un set de réplicas de MongoDB en Kubernetes, consulte Instalar y usar la búsqueda con MongoDB Enterprise Edition
Un set de réplicas de MongoDB externo, consulta Instala y usa MongoDB Search y búsqueda vectorial con MongoDB Enterprise Edition.
prerrequisitos
Para aprovechar MongoDB Search y la Búsqueda Vectorial en tu implementación de MongoDB Enterprise, debes contar con lo siguiente:
MongoDB completamente funcional 8.0.10+ set de réplicas implementado de una de las siguientes maneras:
Dentro de un clúster de Kubernetes utilizando el Operador de Kubernetes
Fuera de un clúster de Kubernetes
Instancia de Cloud Manager u Ops Manager
Tareas de configuración
La siguiente tabla muestra las tareas de configuración que el Operador de Kubernetes realiza automáticamente y las acciones que debe realizar para implementar con éxito MongoDB Search y búsqueda vectorial en Kubernetes y conectarse a un set de réplicas de MongoDB en Kubernetes o a un set de réplicas externo de MongoDB.
Tarea | (Dentro de Kubernetes) Realizado por | (MongoDB externo) Realizado por |
|---|---|---|
Implementa Ops Manager dentro de Kubernetes | Operador de Kubernetes | Operador de Kubernetes |
Implementa Cloud Manager u Ops Manager fuera de Kubernetes | Tú | Tú |
Implementa un set de réplicas de MongoDB | Operador de Kubernetes | Tú |
Crea | Tú | Tú |
Proporciona la cadena de conexión al set de réplicas de MongoDB | Operador de Kubernetes | Tú |
Crea configuración de | Operador de Kubernetes | Operador de Kubernetes |
Configura los parámetros necesarios del set de réplicas en cada proceso | Operador de Kubernetes | Tú |
Polyfill | Operador de Kubernetes | Tú |
Crea un usuario para | Kubernetes operador y usted aplicando el recurso MongoDBUser | Tú |
Configura el set de réplicas de MongoDB con un usuario que tenga los permisos necesarios para consultar query | Tú | Tú |
Crea índices de búsqueda de MongoDB y Vector Search | Tú | Tú |
Exponga los pods de búsqueda externamente para conectar desde cada nodo | No es necesario | Tú |
Expón los pods mongod de forma externa para conectarte desde los nodos | No es necesario | Tú |
Seguridad
La siguiente imagen ilustra la configuración de seguridad del proceso mongot. Si el servidor de MongoDB está dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación con archivo de claves para MongoDB Search y búsqueda vectorial. Si el servidor MongoDB es externo, se debe crear un secreto de Kubernetes que contenga la credencial keyfile del set de réplicas y hacer referencia a este en el MongoDBSearch CR.

Autenticación
Al conectarse a mongod, mongot se autentica como un usuario de base de datos. Al implementar MongoDB Search y búsqueda vectorial, debes crear el usuario de base de datos. Debes pasar las credenciales de usuario almacenadas en un secreto de Kubernetes a mongot rellenando los campos spec.source.username y spec.source.passwordSecretRef en el MongoDBSearch CR.
Al aceptar una conexión de mongod, el mongot autentica la solicitud remota utilizando la autenticación interna con keyfiles, similar a la autenticación interna de set de réplicas de MongoDB. Cuando se configura para indexar un recurso de MongoDB en el mismo clúster de Kubernetes, el Operador de Kubernetes configura automáticamente la autenticación de keyfile para MongoDBSearch. Si el set de réplicas de MongoDB se implementa fuera de Kubernetes, debes crear un secreto de Kubernetes que contenga la credencial de keyfile del set de réplicas y referenciarlo en el campo MongoDBSearch.spec.source.external.keyfileSecretRef.
Seguridad de capa de transporte (TLS)
MongoDBSearch puede proteger los datos y las credenciales en tránsito mediante TLS. Para los comandos de gestión de índices y las consultas de búsqueda, especifique (incluso un objeto vacío, {}) el campo spec.security.tls y proporcione un certificado TLS en un secreto de Kubernetes en el campo spec.security.tls.certificateKeySecretRef. Este certificado TLS debe ser emitido y firmado por la misma CA que emitió el certificado que utiliza el set de réplicas de MongoDB.
Cuando el Operador de Kubernetes implementa tanto MongoDBSearch como MongoDB, la configuración subyacente de mongot y mongod es manejada en gran medida por el propio Operador de Kubernetes. Cuando el conjunto de réplicas de MongoDB se implementa fuera de Kubernetes, el campo .spec.source.external.tls debe completarse con un secreto de Kubernetes que contenga el mismo certificado CA con el que está configurado mongod, y la propia configuración de mongod debe tener el parámetro searchTLSMode establecido en requireTLS.



