El MongoDBCommunity recurso personalizado permite implementar y administrar conjuntos de réplicas de MongoDB Community Edition en Kubernetes. El operador de Kubernetes utiliza este recurso para crear conjuntos con estado, servicios y otros recursos de Kubernetes necesarios para ejecutar implementaciones de MongoDB Community.
Para obtener más información, consulte la documentación del operador de la comunidad 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 a implementar. Por ejemplo,
"8.0.0".
spec.typeTipo: string
Tipo de despliegue de MongoDB a crear. El valor aceptado es
ReplicaSet.
spec.membersTipo: entero
Número de miembros del conjunto de réplicas. Esto determina cuántos
mongodpods crea 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 ajustes de TLS y autenticación.
spec.security.tlsTipo: Objeto
Configuración TLS para la implementación de MongoDB.
spec.security.tls.enabledTipo: booleano
Indicador 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 del servidor TLS y la clave 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 que se deben 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 un error para los usuarios que existen en el despliegue de MongoDB pero no están definidos en la especificación de recursosMongoDBCommunity.Por defecto:
false.
Configuración del agente
spec.agentTipo: Objeto
Configuración del agente de MongoDB.
spec.agent.logLevelTipo: string
Nivel de detalle de los registros del agente de MongoDB. Los valores aceptados incluyen:
DEBUGINFOWARNERROR
Configuración de StatefulSet
spec.statefulSetTipo: Objeto
Especificación para el StatefulSet creado por el operador de Kubernetes para su
MongoDBCommunityrecurso. Úsela para anular las solicitudes y límites de recursos de contenedores predeterminados.
spec.statefulSet.specTipo: Objeto
EspecificaciónStatefulSet que el operador de Kubernetes combina con los valores predeterminados generados. Sigue la especificación estándar StatefulSet de Kubernetes.
spec.statefulSet.spec.template.spec.containersTipo: arreglo de objetos
Lista de anulaciones de contenedores. Puede anular las solicitudes de recursos y los límites para los siguientes contenedores:
mongod— El contenedor de la base de datos MongoDB.mongodb-agent— El contenedor auxiliar del agente de MongoDB.
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 la base de datos MongoDB que se crearán para esta implementación. Cada objeto de usuario define las credenciales y los roles de un usuario de la base de datos.
spec.users[*].nameTipo: string
Nombre de usuario para el usuario de la base de datos MongoDB.
spec.users[*].dbTipo: string
Base de datos de autenticación para el usuario. El valor predeterminado es
admin.
spec.users[*].passwordSecretRef.nameTipo: string
Nombre del secreto de Kubernetes que contiene la contraseña de este usuario de la 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 que se asignarán a este usuario de la base de datos.
spec.users[*].roles[*].nameTipo: string
Nombre del rol a asignar. Por ejemplo,
root,readWrite,readAnyDatabaseosearchCoordinator.
spec.users[*].roles[*].dbTipo: string
Base de datos a la que se aplica el rol. Por ejemplo,
admin.
Integración con MongoDBSearch
Puede implementar MongoDB Search y Vector Search junto con un MongoDBCommunity recurso utilizando el MongoDBSearch CRD. Para habilitar la funcionalidad de búsqueda, cree un search-sync-source usuario con el searchCoordinator rol:
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 automáticamente el rol personalizado searchCoordinator.
Para obtener más información, consulte Implementación de MongoDB Search y Vector Search.