Docs Menu
Docs Home
/ /
/ / /

Configuración de búsqueda de MongoDB y búsqueda vectorial

Puede implementar MongoDB Search y Vector Search junto con MongoDB v8.0 o superior utilizando los controladores MongoDB para el operador de Kubernetes.

El siguiente ejemplo muestra la configuración dentro del spec Objeto para la implementación de MongoDB Search y Vector Search. Para obtener más información sobre estas configuraciones, consulte las opciones de configuración obligatoria y opcional.

Ejemplo

1spec:
2 source:
3 mongodbResourceRef:
4 name: mdb
5 external:
6 hostAndPorts:
7 - mdb-rs-external-0.example.com:27017
8 - mdb-rs-external-1.example.com:27017
9 - mdb-rs-external-2.example.com:27017
10 tls:
11 ca:
12 name: mdbc-rs-ca
13 username: search-sync-source
14 passwordSecretRef:
15 name: mdbc-rs-search-sync-source-password
16 key: password
17 security:
18 tls:
19 certificateKeySecretRef:
20 name: mdbs-tls-secret
21 resourceRequirements:
22 limits:
23 cpu: "3"
24 memory: 5Gi
25 requests:
26 cpu: "2"
27 memory: 3Gi
28 autoEmbedding:
29 embeddingModelAPIKeySecret:
30 name: embedding-model-api-query-key
31 providerEndpoint: https://ai.mongodb.com/v1/embeddings
32 logLevel: INFO
33 prometheus: {}

Esta sección describe la configuración necesaria para implementar los recursos MongoDB Search y Vector Search. Si define solo la configuración requerida en la Definición de Recurso Personalizada (CRD), el operador de Controladores MongoDB para Kubernetes utiliza los valores predeterminados para todas las opciones de configuración de MongoDBSearch.

apiVersion

Tipo: string

Versión del esquema de recursos de Kubernetes de MongoDB. Establezca el valor en mongodb.com/v1.

kind

Tipo: string

Tipo de recurso de MongoDB Kubernetes que se creará. Establézcalo en MongoDBSearch.

metadata.namespace

Tipo: string

Espacio de nombres donde se debe crear el recurso MongoDBSearch. Para aprovechar la configuración automática de MongoDBSearch y los recursos MongoDB o MongoDBCommunity, el recurso MongoDBSearch debe crearse en el mismo espacio de nombres que el recurso MongoDB o MongoDBCommunity.

metadata.name

Tipo: string

Identificador único del recurso MongoDBSearch. El nombre del recurso puede tener un máximo de 44 caracteres.

Esta sección describe las configuraciones opcionales para los recursos de búsqueda de MongoDB y búsqueda vectorial. Si omite las configuraciones opcionales y define solo las requeridas en el... CRD, el operador de controladores MongoDB para Kubernetes, utiliza los valores predeterminados para todas las configuraciones opcionales para configurar MongoDBSearch.

spec.source

Tipo: objeto

Configuración que describe el conjunto de réplicas de origen de MongoDB para mongot. Es necesario si:

  • MongoDB es externo

  • MongoDB tiene un nombre diferente de MongoDBSearch

El recurso MongoDBSearch siempre debe estar conectado al conjunto de réplicas. Si implementó el conjunto de réplicas mediante el operador de Kubernetes MongoDB con MongoDBCommunity CRD o, y si spec.source está vacío, el operador de Kubernetes utiliza lo siguiente, basándose en, para metadata.name buscar la base de datos en Kubernetes:

  • Busque MongoDB o MongoDBCommunity recursos con el mismo nombre que el establecido para metadata.name en MongoDBSearch, en el mismo espacio de nombres.

  • Encuentre la contraseña secreta para el usuario mongot a partir del secreto <MongoDBSearch.metadata.name>-search-sync-source-password.

spec.source.mongodbResourceRef.name

Tipo: string

Nombre del recurso MongoDB o MongoDBCommunity que se asociará con este recurso de MongoDB Search y Vector Search. No se puede tener más de un recurso de MongoDBSearch que haga referencia al mismo recurso MongoDB o MongoDBCommunity. Si especifica un nombre diferente, debe apuntar explícitamente al recurso MongoDB o MongoDBCommunity donde desea habilitar MongoDB Search y Vector Search.

Utilice este campo solo si su recurso MongoDB o MongoDBCommunity está implementado en el mismo clúster de Kubernetes y en el mismo espacio de nombres que su recurso MongoDBSearch. Al configurar este campo, el operador de Kubernetes puede realizar automáticamente lo siguiente:

  • Establecer cadenas de conexión adecuadas a la base de datos.

  • Reconfigure las implementaciones de la base de datos MongoDB configurando los parámetros necesarios para habilitar la funcionalidad de búsqueda y configurar las direcciones de los pods de búsqueda.

Si su base de datos está implementada fuera de Kubernetes o en un espacio de nombres diferente, use spec.external para configurar la conexión a la base de datos. Este campo es mutuamente excluyente con spec.external.

Si se omite, el operador de Kubernetes buscará el recurso MongoDB o MongoDBCommunity con el mismo nombre que este recurso MongoDBSearch.

spec.source.username

Tipo: string

Nombre de usuario que se usará para autenticar mongot mongodcon. El usuario especificado debe tener el searchCoordinator rol. Si se omite, el operador de Kubernetes asume que el nombre de usuario search-sync-source es.

spec.source.passwordSecretRef.name

Tipo: string

Nombre del secreto que contiene la contraseña que mongot debe usar para autenticarse con mongod. Si se omite, el valor predeterminado es <MongoDBSearch.metadata.name>-search-sync-source-password.

spec.source.passwordSecretRef.key

Tipo: string

Clave bajo la cual se almacena el valor de la contraseña en el secreto. Si se omite, el valor predeterminado es password.

Los siguientes ajustes solo se requieren para configurar una conexión a un set de réplicas externo de MongoDB.

spec.source.external

Tipo: objeto

Configuración que describe la fuente de datos externa. Este objeto describe la configuración de los recursos MongoDB Search y Vector Search para conectarse a un MongoDB externo. Esta configuración solo debe especificarse si desea conectarse a un MongoDB externo que no se haya implementado con el operador de Kubernetes. Si se especifica, esta configuración anula la configuración de spec.source.mongodbResourceRef.name. Si utilizó el operador de Kubernetes para instalar MongoDB en el mismo clúster, esta configuración es opcional.

spec.source.external.hostAndPorts

Tipo: arreglo de cadenas

Lista de nombres de host y puertos del conjunto de réplicas externas. Esta es una lista de hosts que se pueden usar para el conjunto de réplicas de MongoDB. mongot se conecta a la base de datos en modo de conjunto de réplicas y obtiene la lista de todos los demás nodos mediante db.hello().

Ejemplo

hostAndPorts:
- mdbc-rs-0.my-external-domain.example.com:27017
- mdbc-rs-1.my-external-domain.example.com:27017
- mdbc-rs-2.my-external-domain.example.com:27017
spec.source.external.tls

Tipo: objeto

Configuración de TLS que mongot debe utilizar al conectarse a la base de datos externa MongoDB.

spec.source.external.tls.ca.name

Tipo: string

Nombre del Secreto que contiene la cadena confiable de las autoridades de certificación que emitieron el certificado TLS utilizado por los nodos mongod.

Ejemplo

spec:
source:
external:
tls:
ca:
name: trusted-ca

El certificado (o certificados si se trata de una cadena de certificados de CA confiables) debe especificarse bajo la clave ca.crt en este secreto.

Ejemplo

name: Secret
apiVersion: v1
metadata:
name: trusted-ca
data:
ca.crt: |
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIIH3EOUAGAsx0wDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE
[...]
U/4rN8Ias/FONYFRtGfs9uXHmo2MP04BF+9ED2dlbNDUbat+6XCozLJj98nI4VEi
qaV3JrVFHTgN
-----END CERTIFICATE-----
spec.security

Tipo: objeto

Configuración de seguridad para el servidor de escucha mongot.

spec.security.tls

Tipo: objeto

Configuración deTLS mongot para. Si se omite, mongot no usará TLS para las conexiones entrantes.

spec.security.tls.certificateKeySecretRef.name

Tipo: string

Nombre de un secreto TLS en el mismo namespace que contenga la llave privada (tls.key) y el certificado (tls.crt). El secreto puede ser de tipo kubernetes.io/tls (emitido por cert-manager) o puede ser creado manualmente. Esto es necesario para habilitar TLS en mongot.

spec.resourceRequirements

Tipo: core/v1/ResourceRequirements

CPU y memoria que el contenedor mongodb-search puede solicitar y a las que está limitado. Recomendamos usar este campo para personalizar la asignación de recursos en lugar de sobrescribirlo con spec.statefulSet.

Si se omite, el operador de Kubernetes utiliza los siguientes valores predeterminados:

requests:
cpu: 2
memory: 2G
spec.resourceRequirements.limits

Tipo: objeto

Límite máximo de recursos (CPU y memoria) que el contenedor mongodb-search puede consumir. De forma predeterminada, no hay límites definidos. Si se omite, el pod no se restringe y, por lo tanto, podría usar todos los recursos del nodo. Recomendamos establecer límites según la carga de trabajo.

spec.resourceRequirements.requests

Tipo: objeto

Cantidad de CPU y memoria solicitada para el contenedor mongodb-search. Si se omite, el operador de Kubernetes utiliza los siguientes valores predeterminados:

requests:
cpu: 2
memory: 2G
spec.persistence.single

Tipo: objeto

Configuración de almacenamiento para el volumen de persistencia de MongoDB Search y Vector Search, donde se almacenan los índices de MongoDB Search y Vector Search. Cada instancia de búsqueda (pod) tiene su propio almacenamiento independiente para mantener los índices, que no se comparte con la base de datos MongoDB. Solo los metadatos del índice (definiciones) se almacenan en la base de datos.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Tamaño mínimo del volumen persistente que debe montarse. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 16Gi.

Por ejemplo, si set de réplicas requiere 60 gigabytes de espacio de almacenamiento, establece este valor en 60Gi.

storageClass

string

Tipo de almacenamiento especificado en una notificación de volumen persistente. Puede crear este tipo de almacenamiento como un objeto StorageClass antes de usarlo en esta especificación de objeto.

Asegúrese de configurar la clase de almacenamiento reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

MongoDBSearch solo admite el campo de persistencia single. Si se omite, el operador de Kubernetes establece spec.persistence.single.storage en 10GB.

spec.logLevel

Tipo: string

Nivel de verbosidad de los registros de mongot. El valor puede ser uno de los siguientes:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

Si se omite, es por defecto INFO.

spec.prometheus

Tipo: objeto

Esto solo está disponible en v1.6 y versiones posteriores.

Configuración para habilitar el endpoint de métricas de Prometheus. Si se omite, se desactiva el endpoint de métricas en mongot. Para habilitar el endpoint de métricas de Prometheus en el puerto por defecto (9946), especifica un objeto {} vacío en el campo spec.prometheus. Para cambiar el puerto, configúralo en el campo spec.prometheus.port.

spec.prometheus.port

Tipo: string

Puerto en el que se habilitará el punto de conexión de métricas de Prometheus. De forma predeterminada, el punto de conexión de métricas de Prometheus está habilitado en el puerto 9946.

Importante

La incrustación automatizada está disponible como función de vista previa solo para la implementación de MongoDB Community Edition. Esta función y la documentación correspondiente pueden cambiar en cualquier momento durante el periodo de vista previa. Para obtener más información, consulte Funciones de vista previa.

spec.autoEmbedding

Tipo: Objeto

Configuración para la incrustación automatizada de datos de texto en su colección.

spec.autoEmbedding.embeddingModelAPIKeySecret

Tipo: Objeto

Configuración de las claves API del proveedor del modelo de incrustación. Para habilitar la incrustación automatizada, debe crear dos claves: una para generar incrustaciones en tiempo de indexación para los datos de su colección y otra para generar incrustaciones en tiempo de consulta para el texto de la consulta. Si aún no tiene las claves, le recomendamos crearlas a partir de dos proyectos de Atlas. Para obtener más información sobre cómo crear claves para los proyectos de Atlas desde la interfaz de usuario de Altas, consulte Administrar claves API.

spec.autoEmbedding.embeddingModelAPIKeySecret.name

Tipo: string

Nombre del secreto que contiene las claves API del modelo de incrustación que mongot debe usar para generar incrustaciones en el momento de la indexación y la consulta.

spec.autoEmbedding.providerEndpoint

Tipo: string

URL del punto final del modelo de incrustación para generar incrustaciones. El valor varía según se creen las claves desde la interfaz de usuario de Atlas (recomendado) o directamente desde el servicio de incrustación (Voyage AI). Para claves creadas desde:

  • Interfaz de usuario de Atlas, el valor es https://ai.mongodb.com/v1/embeddings (predeterminado)

  • Voyage AI, el valor es https://api.voyageai.com/v1/embeddings

spec.version

Tipo: string

Versión de la imagen de Docker mongodb-search. Si se omite, el operador de Kubernetes elige automáticamente la versión más reciente de MongoDBSearch. Puede configurarlo explícitamente para evitar actualizaciones automáticas al actualizar la versión del operador de Kubernetes.

spec.statefulSet

Tipo: apps/v1/StatefulSet

Especificación para el StatefulSet, creado para implementar mongot pods, que sobrescribe la configuración que aplica el operador de Kubernetes. Las anulaciones siempre se aplican en último lugar. Admite los spec.statefulSet.spec spec.statefulSet.metadata campos y.

Nota

No configure los requisitos de recursos ni la configuración de persistencia con spec.statefulSet. En su lugar, utilice los campos spec.resourceRequirements y spec.persistence respectivamente.

Volver

Configuración de rotación de registros de CRD