Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
/ / /

Configuraciones de MongoDB Search y búsqueda vectorial

Puedes implementar MongoDB Search y búsqueda vectorial junto a MongoDB v8.0 o superior utilizando MongoDB Controllers para Kubernetes operador.

El siguiente ejemplo muestra la configuración dentro del spec objeto para la implementación de MongoDB Search y búsqueda vectorial. Para obtener más información sobre estos ajustes, consulta Requerido Ajustes y Opcional Ajustes.

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 keyfileSecretRef:
11 name: mdbc-rs-keyfile
12 key: keyfile
13 tls:
14 ca:
15 name: mdbc-rs-ca
16 username: search-sync-source
17 passwordSecretRef:
18 name: mdbc-rs-search-sync-source-password
19 key: password
20 security:
21 tls:
22 certificateKeySecretRef:
23 name: mdbs-tls-secret
24 resourceRequirements:
25 limits:
26 cpu: "3"
27 memory: 5Gi
28 requests:
29 cpu: "2"
30 memory: 3Gi
31 logLevel: INFO

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 Personalizado (CRD), el operador de Controladores MongoDB para Kubernetes utiliza los valores predeterminados para todas las opciones de configuración para configurar 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 Kubernetes de MongoDB que se va a crear. Configurar esto en MongoDBSearch.

metadata.namespace

Tipo: string

Espacio de nombres donde se debe crear el recurso MongoDBSearch. Para aprovechar la configuración automática de los recursos MongoDBSearch y MongoDB o MongoDBCommunity, el recurso MongoDBSearch debe crearse en el mismo namespace 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 los ajustes opcionales para el recurso MongoDB Search y búsqueda vectorial. Si omite la configuración opcional y define solo la configuración obligatoria en la CRD, los controladores de MongoDB para Kubernetes Operator utilizan los valores por defecto para todas las configuraciones opcionales al configurar MongoDBSearch.

spec.source

Tipo: objeto

Configuración que describe el set de réplicas de origen MongoDB para mongot. Esto es necesario si:

  • MongoDB es externo

  • MongoDB tiene un nombre diferente de MongoDBSearch

El recurso MongoDBSearch siempre debe estar conectado al set de réplicas. Si implementó el set de réplicas usando el operador de Kubernetes con MongoDB o MongoDBCommunity CRD, y si spec.source está vacío, el operador de Kubernetes utiliza lo siguiente basándose en el metadata.name para 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 a asociar con este recurso MongoDB Search y búsqueda vectorial. No puede tener más de un recurso MongoDBSearch haciendo referencia al mismo recurso MongoDB o MongoDBCommunity. Si especifica un nombre diferente, debe señalar explícitamente el MongoDB o MongoDBCommunity donde desea habilitar MongoDB Search y búsqueda vectorial.

Utiliza este campo solo si tu recurso MongoDB o MongoDBCommunity está desplegado en el mismo clúster de Kubernetes y se encuentra en el mismo namespace que tu recurso MongoDBSearch. Configurar este campo permite que el Operador de Kubernetes realice automáticamente las siguientes acciones:

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

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

Si tu base de datos está implementada fuera de Kubernetes o se encuentra en un diferente namespace, usa spec.external para configurar la conexión a la base de datos. Este campo es excluyente con spec.external.

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

spec.source.external

Tipo: objeto

Configuraciones que describen la fuente de datos externa. Este objeto describe la configuración del recurso de MongoDB Search y búsqueda vectorial para conectarse a un MongoDB externo. Estos ajustes solo deben especificarse si deseas conectarte a una MongoDB externa que no fue implementada mediante el Operador de Kubernetes. Si se especifica, estas configuraciones anulan las configuraciones para spec.source.mongodbResourceRef.name. Si usaste el Operador de Kubernetes para instalar MongoDB en el mismo clúster, estas configuraciones son opcionales.

spec.source.external.hostAndPorts

Tipo: arreglo de cadenas

Lista de nombres de host y puertos del set de réplicas externas. Esta es una lista de nodos iniciales de host para el set de réplicas de MongoDB. El mongot se conecta a la base de datos en modo de set de réplicas y obtiene la lista de todos los demás nodos utilizando 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.keyfileSecretRef

Tipo: objeto

Referencia al secreto de Kubernetes que contiene el archivo clave para la autenticación interna del clúster.

spec.source.external.keyfileSecretRef.name

Tipo: string

Nombre del archivo clave utilizado para autenticar mongod a mongot. El nombre de secreto especificado debe contener el mismo archivo de clave que utilizan los miembros del set de réplicas de MongoDB para la comunicación interna.

spec.source.external.keyfileSecretRef.key

Tipo: string

Contenido del keyfile como string.

Tip

Puede encontrar el archivo clave en el campo auth.key de la configuración de automatización para su instancia de Cloud Manager u Ops Manager.

spec.source.external.tls

Tipo: objeto

Configuraciones de TLS que mongot debe usar 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 los certificados si se trata de una cadena de certificados de CA) 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.source.username

Tipo: string

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

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.

spec.security

Tipo: objeto

Configuración de seguridad del servidor de escucha mongot.

spec.security.tls

Tipo: objeto

TLS configuración para mongot. Si se omite, mongot no utilizará TLS para 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 tener limitados. Recomendamos utilizar este campo para personalizar las asignaciones de recursos en lugar de sobrescribirlo con spec.statefulSet.

Si se omite, el Operador de Kubernetes utiliza los siguientes valores por defecto:

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.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.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 por defecto es 16 Gi.

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úrate de establecer el StorageClass reclaimPolicy como Retain. Esto garantiza que los datos se conserven cuando se elimine una Solicitud de Volumen Persistente.

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

spec.version

Tipo: string

Versión de la imagen docker de mongodb-search. Si se omite, el Kubernetes operador elige automáticamente la versión más nueva de MongoDBSearch. Puede configurarse explícitamente para evitar actualizaciones automáticas cuando la versión de Kubernetes Operator sea actualizada.

spec.statefulSet

Tipo: apps/v1/StatefulSet

Especificación para el StatefulSet, creado para la implementación de mongot pods que sobrescribe la configuración aplicada por el operador de Kubernetes. Las sobrescrituras siempre se aplican al final. Admite tanto los campos spec.statefulSet.spec como spec.statefulSet.metadata.

Nota

No establezcas requisitos de recursos o configuraciones de persistencia usando spec.statefulSet. En su lugar, utilice los campos spec.resourceRequirements y spec.persistence respectivamente.

Volver

Configuración de rotación de registros CRD

En esta página