El recurso personalizado MongoDBCommunity le permite implementar y gestionar set de réplicas de MongoDB Community Edition en Kubernetes. El operador de Kubernetes utiliza este recurso para crear StatefulSets, servicios y otros recursos de Kubernetes necesarios para ejecutar implementación de MongoDB Community.
Para obtener más información, consulte la documentación del operador de la Community de MongoDB.
Ejemplo
El siguiente ejemplo muestra una especificación de recursos para un recurso personalizado MongoDBCommunity:
1 apiVersion: mongodbcommunity.mongodb.com/v1 2 kind: MongoDBCommunity 3 metadata: 4 name: my-mongodb-community 5 spec: 6 version: "8.0.0" 7 type: ReplicaSet 8 members: 3 9 security: 10 tls: 11 enabled: true 12 certificateKeySecretRef: 13 name: mongodb-tls-cert 14 caConfigMapRef: 15 name: mongodb-ca 16 authentication: 17 ignoreUnknownUsers: true 18 modes: 19 - SCRAM 20 agent: 21 logLevel: DEBUG 22 statefulSet: 23 spec: 24 template: 25 spec: 26 containers: 27 - name: mongod 28 resources: 29 limits: 30 cpu: "2" 31 memory: 2Gi 32 requests: 33 cpu: "1" 34 memory: 1Gi 35 - name: mongodb-agent 36 resources: 37 limits: 38 cpu: "1" 39 memory: 2Gi 40 requests: 41 cpu: "0.5" 42 memory: 1Gi 43 users: 44 - name: mdb-admin 45 db: admin 46 passwordSecretRef: 47 name: mdb-admin-user-password 48 scramCredentialsSecretName: mdb-admin-user 49 roles: 50 - name: root 51 db: admin
Configuraciones de recursos obligatorias MongoDBCommunity
Esta sección describe los ajustes que debes utilizar para todos los recursos MongoDBCommunity.
apiVersionTipo: string
Versión del esquema de recursos de MongoDB Kubernetes. Establecer el valor en
mongodbcommunity.mongodb.com/v1.
kindTipo: string
Tipo de recurso de Kubernetes de MongoDB que se va a crear. Configurar esto en
MongoDBCommunity.
metadata.nameTipo: string
Nombre legible para que puedas identificar este recurso
MongoDBCommunityen particular.Los nombres de recursos deben tener 44 caracteres o menos.
spec.versionTipo: string
Versión de MongoDB Community para implementar. Por ejemplo,
"8.0.0".
spec.typeTipo: string
Tipo de implementación de MongoDB que se va a crear. El valor aceptado es
ReplicaSet.
spec.membersTipo: entero
Número de set de réplicas. Esto determina cuántos pods
mongodcrea el operador de Kubernetes en el StatefulSet.
Configuración de recursos MongoDBCommunity opcional
El recurso personalizado MongoDBCommunity puede emplear las siguientes configuraciones:
Configuración de seguridad
spec.securityTipo: Objeto
Configuración de seguridad para el recurso
MongoDBCommunity. Contiene configuraciones de TLS y autenticación.
spec.security.tlsTipo: Objeto
Configuración de TLS para la implementación de MongoDB.
spec.security.tls.enabledTipo: booleano
Marca para habilitar o deshabilitar TLS para la implementación de MongoDB. Establezca en
truepara habilitar las conexiones cifradas con TLS.
spec.security.tls.certificateKeySecretRef.nameTipo: string
Nombre del secreto de Kubernetes que contiene el certificado de servidor TLS y la llave privada para la implementación de MongoDB.
spec.security.tls.caConfigMapRef.nameTipo: string
Nombre del ConfigMap de Kubernetes que contiene el certificado de la Autoridad de certificación (CA) utilizado para verificar las conexiones TLS.
spec.security.authenticationTipo: Objeto
Configuración de autenticación para la implementación de MongoDB.
spec.security.authentication.modesTipo: arreglo de cadenas
Lista de mecanismos de autenticación para habilitar en la implementación de MongoDB. Los valores aceptados incluyen:
SCRAM
spec.security.authentication.ignoreUnknownUsersTipo: booleano
Si
true, el operador de Kubernetes no informa de un error para los usuarios que existen en la implementación de MongoDB pero que no están definidos en la especificación de recursosMongoDBCommunity.Por defecto:
false.
Configuraciones del agente
spec.agentTipo: Objeto
Configuración del MongoDB Agent.
spec.agent.logLevelTipo: string
Nivel de verbosidad de los registros de MongoDB Agent. Los valores aceptados incluyen:
DEBUGINFOWARNERROR
Configuración de StatefulSet
spec.statefulSetTipo: Objeto
Especificación para el StatefulSet creado por el Operador de Kubernetes para tu recurso
MongoDBCommunity. Utiliza esta opción para anular las solicitudes y los límites de recursos del contenedor por defecto.
spec.statefulSet.specTipo: Objeto
Especificación de StatefulSet que el operador de Kubernetes combina con los valores predeterminados generados. Sigue la especificación estándar de Kubernetes StatefulSet.
spec.statefulSet.spec.template.spec.containersTipo: arreglo de objetos
Lista de anulaciones de contenedores. Puede anular las solicitudes y los límites de recursos para los siguientes contenedores:
mongod— El contenedor de la base de datos de MongoDB.mongodb-agent— El contenedor sidecar de MongoDB Agent.
containers: - name: mongod resources: limits: cpu: "2" memory: 2Gi requests: cpu: "1" memory: 1Gi - name: mongodb-agent resources: limits: cpu: "1" memory: 2Gi requests: cpu: "0.5" memory: 1Gi
Configuración de usuario
spec.usersTipo: arreglo de objetos
Lista de usuarios de bases de datos de MongoDB que se crearán para esta implementación. Cada objeto de usuario define las credenciales y los roles de un usuario de base de datos.
spec.users[*].nameTipo: string
Nombre de usuario del usuario de base de datos de MongoDB.
spec.users[*].dbTipo: string
Base de datos de autenticación para el usuario. El valor por defecto es
admin.
spec.users[*].passwordSecretRef.nameTipo: string
Nombre del secreto de Kubernetes que contiene la contraseña para este usuario de base de datos.
spec.users[*].scramCredentialsSecretNameTipo: string
Nombre del secreto donde el operador de Kubernetes almacena las credenciales SCRAM generadas para este usuario.
spec.users[*].rolesTipo: arreglo de objetos
Lista de roles para asignar a este usuario de base de datos.
spec.users[*].roles[*].nameTipo: string
Nombre del rol que se va a asignar. Por ejemplo,
root,readWrite,readAnyDatabaseosearchCoordinator.
spec.users[*].roles[*].dbTipo: string
Base de datos en la que se aplica el rol. Por ejemplo,
admin.
Integración con MongoDBSearch
Puede implementar MongoDB Search y búsqueda vectorial junto con un recurso MongoDBCommunity utilizando el CRD MongoDBSearch. Para habilitar la funcionalidad de búsqueda, cree un usuario search-sync-source con el rol searchCoordinator:
users: - name: search-sync-source db: admin passwordSecretRef: name: my-resource-search-sync-source-password scramCredentialsSecretName: my-resource-search-sync-source roles: - name: searchCoordinator db: admin
Nota
Para MongoDB 8.2 y versiones posteriores, searchCoordinator es un rol integrado. Para versiones anteriores, el operador de Kubernetes crea el rol personalizado searchCoordinator automáticamente.
Para obtener más información, consulte Implementar MongoDB Search y búsqueda vectorial.