The MongoDBCommunity custom resource lets you deploy and manage MongoDB Community Edition replica sets in Kubernetes. The Kubernetes Operator uses this resource to create statefulSets, services, and other Kubernetes resources required to run MongoDB Community deployments.
To learn more, see the MongoDB Community Operator documentation.
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 recurso requeridas de 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
Number of replica set members. This determines how many
mongodpods the Kubernetes Operator creates in the 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
TLS settings for the MongoDB deployment.
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
Name of the Kubernetes secret that contains the TLS server certificate and private key for the MongoDB deployment.
spec.security.tls.caConfigMapRef.nameTipo: string
Name of the Kubernetes ConfigMap that contains the Certificate Authority (CA) certificate used to verify TLS connections.
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
Specification for the StatefulSet created by the Kubernetes Operator for your
MongoDBCommunityresource. Use this to override default container resource requests and limits.
spec.statefulSet.specTipo: Objeto
StatefulSet specification that the Kubernetes Operator merges with generated defaults. Follows the standard Kubernetes StatefulSet spec.
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
Name of the Kubernetes secret that contains the password for this database user.
spec.users[*].scramCredentialsSecretNameTipo: string
Name of the secret where the Kubernetes Operator stores the generated SCRAM credentials for this user.
spec.users[*].rolesTipo: arreglo de objetos
List of roles to assign to this database user.
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
You can deploy MongoDB Search and Vector Search alongside a MongoDBCommunity resource using the MongoDBSearch CRD. To enable search functionality, create a search-sync-source user with the searchCoordinator role:
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.