MongoDB Search habilita la búsqueda de texto completo en su entorno Kubernetes mediante la implementación del mongot proceso junto con la implementación de su base de datos MongoDBmongod (). El mongot proceso administra los índices de búsqueda, obtiene datos de la base de datos y procesa $search las $searchMeta consultas y. Esto elimina la necesidad de mantener sistemas de búsqueda separados, a la vez que proporciona funciones de búsqueda avanzadas.
Para implementar MongoDB Search, se aplica el recurso personalizado (CR) MongoDBSearch, que el operador de Kubernetes recoge y utiliza para implementar pods mongot y solicitar el almacenamiento persistente especificado en spec.
Para conocer los procedimientos de implementación, consulte Implementar MongoDB Search y Vector Search.
El mongot proceso
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 o, la dirige a uno de$search$searchMetalosmongotnodos. Elmongotnodo que recibe la consulta la procesa, agrega los datos y devuelve los resultadosmongoda, que los reenvía al usuario.
Los mongot componentes están estrechamente vinculados a un único conjunto de réplicas de MongoDB y no se pueden compartir entre varias bases de datos o conjuntos de réplicas. Cada implementación de conjunto de réplicas tiene sus propios nodos de búsqueda dedicados. Para obtener más información sobre la arquitectura de los nodos de búsqueda, consulte Arquitectura de nodos en la documentación de MongoDB Search.
Gestión de redes
La conectividad de red entre mongot y mongod va en ambas direcciones:
mongotEstablece conexiones con el conjunto de réplicas para obtener los datos utilizados para crear índices y ejecutar consultas.mongodSe conecta amongotpara reenviar operaciones relacionadas con la búsqueda, como la gestión de índices y la consulta de datos.
El mongod actúa como proxy para todas las consultas de búsqueda. Nunca interactúas directamente con el mongot.
Despliegue gestionado por el operador
Cuando los procesos mongot y mongod se implementan dentro del clúster de Kubernetes, el Operador de Kubernetes realiza la configuración de ambos procesos automáticamente. Específicamente, el Operador de Kubernetes:
Encuentra el CR de MongoDB al que hace referencia MongoDBSearch
spec.source.mongodbResourceRefusando, o por una convención de nomenclatura buscando el CR de MongoDB con el mismo nombre que MongoDBSearch.Genera la configuración
mongoten un archivo YAML y la guarda en un config map llamado<MongoDBSearch.metadata.name>-search-config.Implementa el conjunto con estado de búsqueda de MongoDB llamado
<MongoDBSearch.metadata.name>-searchcon los requisitos de almacenamiento y recursos configurados de acuerdo conspec.persistenceyspec.resourceRequirementsen el CR.Actualiza la configuración de cada proceso
mongodagregando las opcionessetParameternecesarias, incluyendo los nombres de host y los números de puerto de los hostsmongot.
Implementación externa de MongoDB
Cuando el conjunto de réplicas de MongoDB se encuentra fuera de Kubernetes, se implementa mongot mediante el operador de Kubernetes y se realizan algunos pasos manualmente. El operador de Kubernetes se encarga de la configuración de los pods de búsqueda, pero es necesario reconfigurar los nodos de MongoDB y la red.
Seguridad
Si el servidor MongoDB se encuentra dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación mediante archivo de clave para MongoDB Search. Si el servidor MongoDB es externo, debe crear un secreto de Kubernetes que contenga la credencial del archivo de clave del conjunto de réplicas y hacer referencia a él en el recurso personalizado MongoDBSearch.
Limitaciones
No se puede implementar MongoDB Search en las siguientes arquitecturas:
IBM Power (ppc64le)
IBM Z (s390x)
Tip
Implementar MongoDB Search y Vector Search — Implementar MongoDB Search y Vector Search
Configuración de búsqueda y búsqueda vectorial de MongoDB — Configuración CR de MongoDBSearch