Puede implementar MongoDB Search y Vector Search junto con MongoDB v8.0 o superior utilizando los controladores MongoDB para el operador de Kubernetes.
Ejemplo de especificación de recursos
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
1 spec: 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
Configuraciones requeridas
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.
apiVersionTipo: string
Versión del esquema de recursos de Kubernetes de MongoDB. Establezca el valor en
mongodb.com/v1.
kindTipo: string
Tipo de recurso de MongoDB Kubernetes que se creará. Establézcalo en
MongoDBSearch.
metadata.namespaceTipo: string
Espacio de nombres donde se debe crear el recurso
MongoDBSearch. Para aprovechar la configuración automática de los recursosMongoDBSearchyMongoDBoMongoDBCommunity, el recursoMongoDBSearchdebe crearse en el mismo espacio de nombres que el recursoMongoDBoMongoDBCommunity.
metadata.nameTipo: string
Identificador único del recurso
MongoDBSearch. El nombre del recurso puede tener un máximo de 44 caracteres.
Configuraciones opcionales
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 MongoDBSearch configurar.
Configuración para configurar la fuente de datos
spec.sourceTipo: objeto
Configuración que describe el conjunto de réplicas de origen de MongoDB para
mongot. Es necesario si:MongoDBes externoMongoDBtiene un nombre diferente deMongoDBSearch
El
MongoDBSearchrecurso siempre debe estar conectado al conjunto de réplicas. Si implementó el conjunto de réplicas mediante el operador de Kubernetes conMongoDBMongoDBCommunityCRD o, y sispec.sourceestá vacío, el operador de Kubernetes utiliza lo siguiente, basándose en, parametadata.namebuscar la base de datos en Kubernetes:Busque
MongoDBoMongoDBCommunityrecursos con el mismo nombre que el establecido parametadata.nameenMongoDBSearch, en el mismo espacio de nombres.Encuentre la contraseña secreta para el usuario
mongota partir del secreto<MongoDBSearch.metadata.name>-search-sync-source-password.
spec.source.mongodbResourceRef.nameTipo: string
Nombre del recurso
MongoDBoMongoDBCommunityque se asociará con este recurso de búsqueda de MongoDB y búsqueda vectorial. No se puede tener más de un recursoMongoDBSearchque haga referencia al mismo recursoMongoDBoMongoDBCommunity. Si especifica un nombre diferente, debe apuntar explícitamente al recursoMongoDBoMongoDBCommunitydonde desea habilitar la búsqueda de MongoDB y la búsqueda vectorial.Utilice este campo solo si su recurso
MongoDBoMongoDBCommunityestá implementado en el mismo clúster de Kubernetes y en el mismo espacio de nombres que su recursoMongoDBSearch. 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.externalpara configurar la conexión a la base de datos. Este campo es mutuamente excluyente conspec.external.Si se omite, el operador de Kubernetes buscará el recurso
MongoDBoMongoDBCommunitycon el mismo nombre que este recursoMongoDBSearch.
Configuración para configurar el mongot usuario
spec.source.usernameTipo: string
Nombre de usuario que se usará para autenticar
mongotmongodcon. El usuario especificado debe tener elsearchCoordinatorrol. Si se omite, el operador de Kubernetes asume que el nombre de usuariosearch-sync-sourcees.
spec.source.passwordSecretRef.nameTipo: string
Nombre del secreto que contiene la contraseña que
mongotdebe usar para autenticarse conmongod. Si se omite, el valor predeterminado es<MongoDBSearch.metadata.name>-search-sync-source-password.
spec.source.passwordSecretRef.keyTipo: string
Clave bajo la cual se almacena el valor de la contraseña en el secreto. Si se omite, el valor predeterminado es
password.
Configuración para conectarse a MongoDB externo
Los siguientes ajustes solo se requieren para configurar una conexión a un set de réplicas externo de MongoDB.
spec.source.externalTipo: 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.hostAndPortsTipo: 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.
mongotse conecta a la base de datos en modo de conjunto de réplicas y obtiene la lista de todos los demás nodos mediantedb.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.keyfileSecretRefTipo: objeto
Referencia al secreto de Kubernetes que contiene el archivo de claves para la autenticación interna del clúster.
spec.source.external.keyfileSecretRef.nameTipo: string
Nombre del archivo de claves utilizado para autenticar
mongodamongot. El nombre del secreto especificado debe contener el mismo archivo de claves que utilizan los miembros del conjunto de réplicas de MongoDB para la comunicación interna.
spec.source.external.keyfileSecretRef.keyTipo: string
Contenido del archivo de claves como cadena.
Tip
Puede encontrar el archivo clave en el campo
auth.keyde la configuración de automatización para su instancia de Cloud Manager u Ops Manager.
spec.source.external.tlsTipo: objeto
Configuración de TLS que
mongotdebe utilizar al conectarse a la base de datos externa MongoDB.
spec.source.external.tls.ca.nameTipo: 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.crten 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-----
Configuración de seguridad
spec.securityTipo: objeto
Configuración de seguridad para el servidor de escucha
mongot.
spec.security.tlsTipo: objeto
Configuración deTLS
mongotpara. Si se omite,mongotno usará TLS para las conexiones entrantes.
spec.security.tls.certificateKeySecretRef.nameTipo: 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 tipokubernetes.io/tls(emitido por cert-manager) o puede ser creado manualmente. Esto es necesario para habilitar TLS enmongot.
Configuración para el aprovisionamiento de recursos
spec.resourceRequirementsTipo: core/v1/ResourceRequirements
CPU y memoria que el contenedor
mongodb-searchpuede solicitar y a las que está limitado. Recomendamos usar este campo para personalizar la asignación de recursos en lugar de sobrescribirlo conspec.statefulSet.Si se omite, el operador de Kubernetes utiliza los siguientes valores predeterminados:
requests: cpu: 2 memory: 2G
spec.resourceRequirements.limitsTipo: objeto
Límite máximo de recursos (CPU y memoria) que el contenedor
mongodb-searchpuede 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.requestsTipo: 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.singleTipo: 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.
EscalarTipo de datoDescripciónlabelSelectorstring
Etiqueta utilizada para vincular volúmenes montados a directorios.
storagestring
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.storageClassstring
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
reclaimPolicyen Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.MongoDBSearchSolo admite el campo de persistenciasingle. Si se omite, el operador de Kubernetes establecespec.persistence.single.storageen10GB.
Configuración para el registro
spec.logLevelTipo: string
Nivel de verbosidad de los registros de
mongot. El valor puede ser uno de los siguientes:TRACEDEBUGINFOWARNERROR
Si se omite, es por defecto
INFO.
Otros ajustes
spec.versionTipo: 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 deMongoDBSearch. Puede configurarlo explícitamente para evitar actualizaciones automáticas al actualizar la versión del operador de Kubernetes.
spec.statefulSetTipo: apps/v1/StatefulSet
Especificación para el StatefulSet, creado para implementar
mongotpods, que sobrescribe la configuración que aplica el operador de Kubernetes. Las anulaciones siempre se aplican en último lugar. Admite losspec.statefulSet.specspec.statefulSet.metadatacampos y.Nota
No configure los requisitos de recursos ni la configuración de persistencia con
spec.statefulSet. En su lugar, utilice los camposspec.resourceRequirementsyspec.persistencerespectivamente.