MongoDB Search permite la capacidad de búsqueda de texto completo en su entorno de Kubernetes mediante la implementación del proceso mongot junto con su implementación de la base de datos de MongoDB (mongod). El proceso mongot gestiona los índices de búsqueda, obtiene datos de la base de datos y procesa las query $search y $searchMeta. Esto elimina la necesidad de mantener sistemas de búsqueda independientes al tiempo que ofrece funcionalidades de búsqueda avanzadas.
Para implementar MongoDB Search, aplique el recurso personalizado (CR) de MongoDBSearch, que el operador de Kubernetes recoge y utiliza para implementar pods mongot y solicitar el almacenamiento persistente especificado en el spec.
Para conocer los procedimientos de implementación, consulte Implementar MongoDB Search y búsqueda vectorial.
El proceso 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$searcho$searchMetaquery, dirige la query a uno de losmongotnodos. Elmongotque recibe la query procesa la query, agrega los datos y devuelve los resultados amongod, que reenvía los resultados al usuario.
Los componentes mongot están estrechamente acoplados con un único set de réplicas de MongoDB y no se pueden compartir entre varias bases de datos o sets de réplicas. Cada implementación de set de réplicas tiene sus propios nodos de búsqueda dedicados. Para aprender más sobre la arquitectura de nodos de Search, consulta 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 set de réplicas para obtener los datos usados para crear índices y ejecutar queries.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úa directamente con el mongot.
Implementación gestionada 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. Concretamente, el operador de Kubernetes:
Encuentra el CR de MongoDB al que hace referencia MongoDBSearch mediante
spec.source.mongodbResourceRef, o mediante una convención de nomenclatura buscando el CR de MongoDB con el mismo nombre que MongoDBSearch.Genera la configuración de
mongoten un archivo YAML y lo guarda en un mapa de configuración llamado<MongoDBSearch.metadata.name>-search-config.Implementar el conjunto con estado de MongoDB Search 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, incluidos los nombres de host y los números de puerto de los hostsmongot.
Implementación externa de MongoDB
Cuando el set de réplicas de MongoDB está fuera de Kubernetes, implementa mongot utilizando el operador de Kubernetes y realiza algunos pasos manualmente. El operador de Kubernetes gestiona la configuración de los pods de búsqueda, pero debe reconfigurar los nodos de MongoDB y la red.
Seguridad
Si el servidor de MongoDB está dentro del clúster de Kubernetes, el operador de Kubernetes configura automáticamente la autenticación de archivo de clave para MongoDB Search. Si el servidor de MongoDB es externo, debe crear un secreto de Kubernetes que contenga las credenciales del archivo de claves del set de réplicas y hacer referencia a él en el MongoDBSearch CR.
Limitaciones
No puedes implementar MongoDB Search en las siguientes arquitecturas:
IBM Power (ppc64le)
IBM Z (s390x)
Tip
Implementar MongoDB Search y búsqueda vectorial — Implementar MongoDB Search y búsqueda vectorial
Configuración de MongoDB Search y búsqueda vectorial — Configuración de CR de MongoDB Search