Docs Menu
Docs Home
/
Enterprise Kubernetes Operator
/

Especificación de recursos de base de datos de MongoDB

Nota

En cualquier lugar de esta página donde diga Ops Manager, puedes sustituir Cloud Manager.

El operador de Kubernetes de MongoDB Enterprisecrea conjuntos con estado de Kubernetes a partir de archivos de especificaciones que usted escribe.

El operador de Kubernetes crea recursos específicos de MongoDB en Kubernetes como recursos personalizados.

Para administrar estos recursos personalizados, utilice el siguiente proceso:

  1. Crear o actualizar una MongoDB especificación de recursos.

  2. Indique a MongoDB Enterprise Kubernetes Operator que lo aplique a su entorno de Kubernetes. Como resultado, Kubernetes Operator realiza las siguientes acciones:

Tipo de implementación
Conjuntos con estado
Tamaño de StatefulSet

Autónomo

1

1 Pod

Set de réplicas

1

1 Pod por miembro

Clúster fragmentado

<numberOfShards> + 2

1 Pod mongospor, fragmento o miembro del servidor de configuración

Cada recurso MongoDB utiliza una especificación de objeto en YAML para definir las características y configuraciones del objeto MongoDB: independiente,conjuntode réplicasy clúster fragmentado.

Cada tipo de recurso debe utilizar la siguiente configuración:

apiVersion

Tipo: string

Versión del esquema de recursos MongoDB.

kind

Tipo: string

Tipo de recurso MongoDB a crear. Establézcalo en MongoDB.

metadata.name

Tipo: string

Nombre del recurso MongoDB que crea.

Los nombres de recursos deben tener 44 caracteres o menos.

spec.credentials

Tipo: string

Obligatorio. Nombre del secreto de Kubernetes que creó como credenciales de autenticación de la APIde Ops Manager para que el operador de Kubernetes se comunique con Cloud Manager u Ops Manager.

El objeto secreto de Kubernetes de Ops Manager que contiene las credenciales debe existir en el mismo espacio de nombres que el recurso que desea crear.

Importante

El operador gestiona los cambios en el secreto

El operador de Kubernetes rastrea cualquier cambio en el secreto y concilia el estado del recurso MongoDB.

spec.persistent

Tipo: booleano

Por defecto: true

ADVERTENCIA: Otorgue a sus contenedores permiso para escribir en su volumen persistente. El operador de Kubernetes fsGroup = 2000 establece, runAsUser = 2000 y runAsNonRoot = true en. El securityContext operador de Kubernetes establece fsgroup igual a runAsUser para que el volumen pueda ser escrito por un usuario que ejecuta el proceso principal en el contenedor. Para obtener más información,consulte "Configurar un contexto de seguridad para un pod o contenedor" y la información relacionada en la documentación de Kubernetes. Si volver a implementar el recurso no soluciona los problemas con su volumen persistente, póngase en contacto con el soporte técnico de MongoDB.

Si no utiliza volúmenes persistentes, el Disk Usage y Disk IOPS los gráficos no se pueden mostrar ni en Processes la pestaña de la Deployment página ni en la Metrics página al revisar los datos de esta implementación.

spec.type

Tipo: string

Tipo de recurso MongoDB a crear. Los valores aceptados son:

  • Standalone

  • ReplicaSet

  • ShardedCluster

spec.version

Tipo: string

Versión de MongoDB que instaló en este recurso MongoDB.

Importante

Asegúrese de elegir una versión de MongoDB Server compatible.

Las versiones compatibles difieren según la imagen base que utiliza el recurso de base de datos MongoDB.

Nota

Si actualiza este valor a una versión posterior de MongoDB para sus recursos de base de datos, la versión de compatibilidad de funciones se mantendrá en la versión de MongoDB que está actualizando para que pueda cambiar a una versión inferior si es necesario. Si desea que la versión de compatibilidad de funciones coincida con la nueva versión de MongoDB, debe configurar manualmente spec.featureCompatibilityVersion con la nueva versión o AlwaysMatchVersion con. Para obtener más información,spec.featureCompatibilityVersion consulte.

Cada recurso debe utilizar una de las siguientes configuraciones:

spec.opsManager.configMapRef.name

Tipo: string

Nombre del ConfigMap con la configuración de conexión de Cloud Manager u Ops Manager. El parámetro es un alias para esta spec.cloudManager.configMapRef.name configuración y puede usarse en su lugar.

Este valor debe existir en el mismo espacio de nombres que el recurso que quieres crear.

Importante

El operador administra los cambios en ConfigMap

El operador de Kubernetes rastrea cualquier cambio en ConfigMap y concilia el estado del recurso MongoDB.

spec.cloudManager.configMapRef.name

Tipo: string

Alias spec.opsManager.configMapRef.name ​​para.

Cada tipo de recurso puede utilizar las siguientes configuraciones:

metadata.annotations.mongodb.com/v1.architecture

Tipo: string

Determina la arquitectura de contenedor utilizada por una implementación específica:

Los valores aceptados son:

  • static

  • non-static

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
annotations:
mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotate

Tipo: objeto

Umbrales después de los cuales el Agente MongoDB rota el registro de respaldo.

spec.agent.backupAgent.logRotate.sizeThresholdMB

Tipo: entero

Tamaño máximo, en MB, de un archivo de registro de respaldo antes de que el Agente MongoDB rote los registros.

spec.agent.backupAgent.logRotate.timeThresholdHrs

Tipo: entero

Número de horas después de las cuales el Agente MongoDB rota el archivo de registro de respaldo.

spec.agent.mongod.auditlogRotate

Tipo: objeto

Objeto que contiene la configuración de rotación del registro de auditoría para los procesos de MongoDB.

spec.agent.mongod.auditlogRotate.sizeThresholdMB

Tipo: número

Tamaño máximo, en MB, de un archivo de registro de auditoría antes de que el MongoDB Agent gire los registros.

spec.agent.mongod.auditlogRotate.timeThresholdHrs

Tipo: entero

Número de horas después de las cuales el Agente MongoDB rota el archivo de registro de auditoría.

spec.agent.mongod.auditlogRotate.numUncompressed

Tipo: entero

Número máximo de archivos de registro de auditoría totales que se dejarán sin comprimir, incluido el archivo de registro actual.

spec.agent.mongod.auditlogRotate.numTotal

Tipo: entero

Número total de archivos de registro de auditoría que Ops Manager conserva. Si no se establece este valor, el número total de archivos de registro de auditoría predeterminado 0 es.

spec.agent.mongod.auditlogRotate.percentOfDiskspace

Tipo: número

Porcentaje máximo del espacio total en disco que Ops Manager puede usar para almacenar los archivos de registro, expresado en decimales. Si se supera este límite, Ops Manager elimina los archivos de registro comprimidos hasta alcanzarlo. Ops Manager elimina primero los archivos de registro más antiguos.

El valor por defecto es 0,02.

spec.agent.mongod.logRotate

Tipo: objeto

Umbrales después de los cuales Ops Manager rota los registros MongoDB de un proceso.

spec.agent.mongod.logRotate.sizeThresholdMB

Tipo: entero

Tamaño máximo en MB para un archivo de registro individual antes de que Ops Manager lo rote. Ops Manager rota el archivo de registro inmediatamente si cumple con el valor especificado en este sizeThresholdMB o en spec.agent.mongod.logRotate.timeThresholdHrs el.

spec.agent.mongod.logRotate.timeThresholdHrs

Tipo: entero

Duración máxima en horas de un archivo de registro individual antes de la siguiente rotación. El tiempo transcurrido es desde la última rotación.

Ops Manager rota el archivo de registro una vez que el archivo cumple timeThresholdHrs con spec.agent.mongod.logRotate.sizeThresholdMB o.

spec.agent.monitoringAgent.logRotate

Tipo: objeto

Umbrales después de los cuales el Agente MongoDB rota el registro de monitoreo.

spec.agent.monitoringAgent.logRotate.sizeThresholdMB

Tipo: entero

Tamaño máximo en MB para un archivo de registro individual antes de que el Agente MongoDB rote el registro de monitoreo.

spec.agent.monitoringAgent.logRotate.timeThresholdHrs

Tipo: entero

Número de horas después de las cuales el Agente MongoDB rota el registro de monitoreo.

spec.agent.readinessProbe.environmentVariables

Tipo: objeto

Configura las siguientes variables de entorno que se utilizan para controlar los archivos de registro de la sonda de preparación:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
spec:
agent:
readinessProbe:
environmentVariables:
READINESS_PROBE_LOGGER_BACKUPS: 1
READINESS_PROBE_LOGGER_MAX_SIZE: 10
READINESS_PROBE_LOGGER_MAX_AGE: 3
READINESS_PROBE_LOGGER_COMPRESS: true
MDB_WITH_AGENT_FILE_LOGGING: false
LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
spec.featureCompatibilityVersion

Tipo: string

Se establece de forma predeterminada la versión principal anterior de MongoDB después de la actualización de MongoDB.

Limita los cambios en los datos que se producen al actualizar a una nueva versión principal. Por ejemplo, si actualiza de MongoDB 5.0 a MongoDB 6.0, la versión de compatibilidad de funciones se mantiene en 5.0 para que pueda cambiar a una versión inferior si es necesario.

Si desea que la versión de compatibilidad de funciones coincida con la nueva versión de MongoDB, debe configurar manualmente featureCompatibilityVersion con la nueva versión. Por ejemplo, featureCompatibilityVersion: 6.0.

Como alternativa, puede habilitar la opción AlwaysMatchVersion para actualizar automáticamente la versión de compatibilidad de funciones para que coincida con la versión de MongoDB durante las actualizaciones. Por ejemplo, featureCompatibilityVersion: AlwaysMatchVersion.

Para aprender más sobre la compatibilidad de funcionalidades, consulta setFeatureCompatibilityVersion en el Manual de MongoDB.

spec.clusterDomain

Tipo: string

Predeterminado: cluster.local

Nombre de dominio del clúster de Kubernetes donde se implementa el operador de Kubernetes. Cuando Kubernetes crea un StatefulSet, asigna un FQDN a cada pod. Para actualizar Cloud Manager u Ops Manager, el operador de Kubernetes calcula el FQDN de cada pod utilizando el nombre de clúster proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

Advertencia

Debe configurar si su clúster spec.clusterDomain de Kubernetes tiene un dominio predeterminado distinto del cluster.local predeterminado. Si no usa el dominio predeterminado ni configura la spec.clusterDomain opción, es posible que el operador de Kubernetes no funcione correctamente.

spec.clusterName

Tipo: string

Predeterminado: cluster.local

Importante

spec.clusterName está obsoleto

Utilice en su spec.clusterDomain lugar.

Nombre de dominio del clúster de Kubernetes donde se implementa el operador de Kubernetes. Cuando Kubernetes crea un StatefulSet, asigna un FQDN a cada pod. Para actualizar Cloud Manager u Ops Manager, el operador de Kubernetes calcula el FQDN de cada pod utilizando el nombre de clúster proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

Advertencia

Debe configurar si su clúster spec.clusterDomain de Kubernetes tiene un dominio predeterminado distinto del cluster.local predeterminado. Si no usa el dominio predeterminado ni configura la spec.clusterDomain opción, es posible que el operador de Kubernetes no funcione correctamente.

metadata.namespace

Tipo: string

Espacio de MongoDB nombres de Kubernetes donde se crea este recurso y otros objetos.

spec.service

Tipo: string

Por defecto: <resource_name>+"-svc" y <resource_name>+"-svc-external".

Importante

spec.service está Deprecated

Nombre del servicio de Kubernetes que se creará o usará para un StatefulSet. Si el servicio con este nombre ya existe, el operador de Kubernetes de MongoDB Enterprise no lo elimina ni lo vuelve a crear. Esta configuración le permite crear sus propios servicios personalizados y que el operador de Kubernetes los reutilice.

spec.logLevel

Tipo: string

Predeterminado: INFO

Configura el nivel de registro del agente de automatización dentro del pod. Los valores aceptados incluyen:

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.security.authentication.ignoreUnknownUsers

Tipo: booleano

Por defecto: false

Determina si se pueden modificar los usuarios de la base de datos que no fueron configurados a través de Kubernetes operador, Cloud Manager u Ops Manager.

Para administrar usuarios de la base de datos directamente a través de o, configure esta mongod mongosconfiguración true en.

Otras configuraciones que puede y debe utilizar en una especificación de recurso MongoDB dependen del elemento de implementación de MongoDB que desee crear:

Nota

Todas las configuraciones independientes también se aplican a los recursos del conjunto de réplicas.

spec.additionalMongodConfig

Tipo: colección

Opciones de configuración adicionales con las que desea iniciar procesos de MongoDB.

El operador de Kubernetes admite todas las opciones de configuración que admite la versión de MongoDB que implementa a través del agente de MongoDB, excepto que el operador de Kubernetes anula los valores que proporciona para cualquiera de las siguientes opciones:

Para obtener más información sobre las opciones de configuración que posee el operador de Kubernetes, consulte Configuración exclusiva del operador de Kubernetes de MongoDB.

Para saber qué opciones de configuración puedes utilizar, consulta Opciones avanzadas para implementaciones de MongoDB en la documentación de Ops Manager.

spec.agent

Tipo: colección

Configuración del agente MongoDB para el recurso de base de datos MongoDB.

spec.agent.startupOptions

Tipo: colección

Configuración del agente MongoDB con el que desea iniciar el recurso de base de datos MongoDB.

Debe proporcionar la configuración del Agente MongoDB como pares clave-valor. Los valores deben ser cadenas.

Para obtener una lista de las configuraciones del agente MongoDB compatibles, consulte:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-standalone
6spec:
7 version: "6.0.0-ent"
8 service: my-service
9
10 opsManager:
11 configMapRef:
12 name: my-project
13 credentials: my-credentials
14 type: Standalone
15
16 persistent: true
17 agent:
18 startupOptions:
19 maxLogFiles: "30"
20 dialTimeoutSeconds: "40"
21...
spec.podSpec

Tipo: objeto

Objeto que contiene las especificaciones para los pods CustomResourceDefinition de MongoDB.

spec.externalAccess

Tipo: colección

Especificación para exponer su clúster a conexiones externas. Para saber cómo conectarse a su recurso MongoDB desde fuera del clúster de Kubernetes, consulte Conectarse a un recurso de base de datos MongoDB desde fuera de Kubernetes.

Si spec.externalAccess agrega, el operador de Kubernetes crea un servicio externo para cada pod de un conjunto de réplicas. Los servicios externos proporcionan un punto de entrada externo para cada pod de base de datos MongoDB de un clúster. Cada servicio externo tiene selectores que lo asocian a un pod específico.

Si agrega esta configuración sin ningún valor, el operador de Kubernetes crea un servicio externo con los siguientes valores predeterminados:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del servicio externo. No se puede cambiar este valor.

Type

LoadBalancer

Crea un servicio LoadBalancer externo.

Port

<Port Number>

Un puerto mongod para.

publishNotReadyAddress

true

Especifica que los registros DNS se crean incluso si el pod no está listo. No se establece en false para ningún pod de base de datos.

Nota

Si configura, el servicio externo agrega otro spec.externalAccess.externalDomain puertoPort Number + 1 () para las copias de seguridad.

spec.externalAccess.externalService

Tipo: colección

Especificación para sobrescribir los valores por defecto en spec.externalAccess.

Al configurar el parámetro, el operador de Kubernetes crea automáticamente spec.externalAccess un servicio de balanceador de carga externo con valores predeterminados. Puede anular ciertos valores o añadir nuevos según sus necesidades. Por ejemplo, si desea crear servicios NodePort y no necesita un balanceador de carga, debe configurar las anulaciones en su especificación de Kubernetes:

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
# you can specify other spec overrides if necessary

Para obtener más información sobre la especificación de Kubernetes, consulte ServiceSpec en la documentación de Kubernetes.

spec.externalAccess.externalService.annotations

Tipo: colección

Pares clave-valor que permiten agregar opciones de configuración específicas del proveedor de nube a todos los clústeres de la implementación. Para obtener más información,consulte las anotaciones y la documentación de su proveedor de nube de Kubernetes.

Puede usar anotaciones para especificar valores de marcador de posición para los servicios externos que utilizan las implementaciones del Operador de Kubernetes. El Operador de Kubernetes reemplaza automáticamente estos valores por los correctos, como se describe en la siguiente tabla. El uso de marcadores de posición permite proporcionar anotaciones específicas en cada servicio para un pod específico.

Valor
Descripción

{resourceName}

{namespace}

{podIndex}

Índice del Pod asignado por StatefulSet y al que apunta el servicio externo actual.

{podName}

Igual a {resourceName}-{podIndex}.

{statefulSetName}

El conjunto con estado.Igual {resourceName} a.

{externalServiceName}

Nombre generado del servicio externo, basado en los valores de marcador de posición especificados. Igual a {resourceName}-{podIndex}-svc-external.

{mongodProcessDomain}

El nombre de dominio del servidor que aloja el proceso mongod. Igual a spec.externalAccess.externalDomain si se establece. De lo contrario, igual al dominio utilizado para el proceso mongod FQDN.

Por ejemplo, para el nombre de host del proceso mdb-rs-1.example.com, example.com es el nombre de dominio.

{mongodProcessFQDN}

El mongod nombre de host del proceso establecido en la configuración de automatización.

El nombre de host del proceso depende de la configuración de su implementación. Si ha configurado su implementación para usar, el nombre de host del proceso tendrá el siguiente external domains formato:

{resourceName}-{podIndex}.{mongodProcessDomain}

Por ejemplo: mdb-rs-1.example.com

Si su implementación no utiliza dominios externos, el nombre de host del proceso utiliza el siguiente formato:

{resourceName}-{podIndex}.{resourceName}-{podIndex}-svc.{namespace}.svc.cluster.local

Por ejemplo: mdb-rs-1.mdb-rs-1-svc.ns.svc.cluster.local

Nota

Debe usar solo valores de marcador de posición conocidos, tal como se especifica en la tabla, y asegurarse de que no contengan valores vacíos o nulos. Tampoco puede usar un marcador de posición específico para implementaciones de varios clústeres de Kubernetes para una sola implementación de recursos de MongoDB.

De lo contrario, el operador de Kubernetes devuelve un error. Por ejemplo, podría aparecer el siguiente mensaje de error:

error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}``

Ejemplo

El siguiente ejemplo especifica los marcadores de posición {resourceName}, {podIndex} y {namespace}:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: mdb-rs
namespace: ns
spec:
replicas: 3
externalAccess:
externalService:
annotations:
external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com

El operador de Kubernetes rellena automáticamente las anotaciones de los servicios externos según el valor correcto de cada marcador de posición. Por ejemplo:

mdb-rs-0-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com
mdb-rs-1-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com
mdb-rs-2-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.externalAccess.externalService.spec

Tipo: colección

Configuración de ServiceSpec. Para obtener más información,spec.externalAccess.externalService consulte.

spec.podSpec.persistence.single

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte los tres directorios para datos, diario y registros en el mismo volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o las colecciones persistence.multiple, pero no ambas.

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

Por ejemplo, si la implementación independiente requiere 60 gigabytes de espacio de almacenamiento, configure este valor 60Gi en.

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úrese de configurar la clase de almacenamiento reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.podSpec.persistence.multiple.data

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para datos en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar una implementación independiente en Kubernetes. 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 este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para la implementación independiente. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.podSpec.persistence.multiple.journal

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para el diario en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar una implementación independiente en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 1Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para la implementación independiente. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.podSpec.persistence.multiple.logs

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para registros en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar una implementación independiente en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 3Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para la implementación independiente. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.podSpec.podTemplate.affinity.nodeAffinity

Tipo: Estructura

Regla de Kubernetes para colocar pods para el conjunto de réplicas en un rango específico de nodos.

Para un rendimiento de lectura-escritura optimizado, utiliza reglas de afinidad de nodos que restrinjan los Pods para ejecutarse en nodos en particular, o para dar preferencia a la ejecución en nodos en particular.

spec.podSpec.podTemplate.affinity.podAffinity

Tipo: Estructura

Regla de Kubernetes para determinar si varios MongoDB pods de recursos deben ubicarse junto a otros pods. Para obtener más información sobre los casos de uso, consulte Afinidad y Antiafinidad en la documentación de Kubernetes.

spec.podSpec.podTemplate.affinity.podAntiAffinity

Tipo: Estructura

Default: kubernetes.io/hostname

Establece una regla para MongoDB distribuir los pods que alojan el recurso en diferentes ubicaciones. Una ubicación puede ser un solo nodo, un rack o una región. De forma predeterminada, el operador de Kubernetes intenta distribuir los pods entre diferentes nodos.

spec.podSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: Estructura

Default: kubernetes.io/hostname

Esta clave define qué etiqueta se utiliza para determinar a qué dominio de topología pertenece un nodo.

spec.podSpec.podTemplate

Tipo: colección

Plantilla para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para los recursos de base de datos de MongoDB.

Los valores de plantilla tienen prioridad sobre los valores especificados en spec.podSpec.

Nota

El operador de Kubernetes no valida los campos que proporcionas en spec.podSpec.podTemplate.

spec.podSpec.podTemplate.metadata

Tipo: colección

Metadatos para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para los recursos de base de datos de MongoDB.

Para revisar qué campos puedes agregar spec.podSpec.podTemplate.metadata a, consulta la documentación de Kubernetes.

spec.podSpec.podTemplate.spec

Tipo: colección

Especificaciones de los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para los recursos de base de datos de MongoDB.

Para revisar qué campos puedes agregar spec.podSpec.podTemplate.spec a, consulta la API principal de Kubernetes PodSpec v.1

Nota

Cuando añades contenedores a spec.podSpec.podTemplate.spec.containers, el operador de Kubernetes los añade al pod de Kubernetes. Estos contenedores se añaden a los contenedores de recursos de bases de datos de MongoDB en el pod.

Utilice esta configuración para especificar las asignaciones de CPU y RAM para cada pod. Para ver ejemplos, consulte los ejemplos en GitHub.

Nota

Todas las configuraciones independientes también se aplican a los recursos del conjunto de réplicas.

Las siguientes configuraciones se aplican a los tipos de recursos del conjunto de réplicas:

spec.backup

Tipo: colección

El contenedor de spec.backup.mode recopilación para, que permite realizar copias de seguridad continuas de los recursos de MongoDB en el operador de Kubernetes.

spec.backup.assignmentLabels

Tipo: arreglo

Una lista de etiquetas separadas por comas para asignar daemons de copia de seguridad, almacenes de registros de operaciones, almacenes de bloques, almacenes de instantáneasS y almacenes de sistemas de archivos a proyectos o grupos específicos. Use etiquetas de asignación para identificar qué almacenes de copia de seguridad están asociados a proyectos específicos.3

Si configura etiquetas de asignación con el operador de Kubernetes, los valores que configure en el archivo de configuración de Kubernetes para las etiquetas de asignación anularán los valores definidos en la interfaz de Ops Manager. Las etiquetas de asignación que no configure con el operador de Kubernetes seguirán usando los valores definidos en la interfaz de Ops Manager.

Nota

Si establece este parámetro, la clave API vinculada con el valor de spec.credentials debe tener una Global Owner función.

spec.backup.mode

Tipo: string

Permite realizar copias de seguridad continuas de un recurso de MongoDB. Los valores posibles son enabled, disabled y terminated.

Nota

La spec.backup.mode configuración depende de la copia de seguridad habilitada en Ops Manager y requiere que spec.backup.enabled el valor en la especificación de recursos de Ops Manager esté establecido true en.

Después de habilitar las copias de seguridad continuas para su recurso MongoDB con,spec.backup.mode puede verificar el estado de la copia de seguridad.

spec.backup.encryption

Tipo: objeto

Objeto que contiene la configuración de cifrado de respaldo.

spec.backup.encryption.kmip

Tipo: objeto

Objeto que contiene la configuración del cifrado de copias de seguridad de KMIP. Para obtener más información, consulte Configurar el cifrado de copias de seguridad de KMIP para Ops Manager.

spec.backup.encryption.kmip.client

Tipo: objeto

Objeto que contiene la configuración del cliente de cifrado de respaldo KMIP.

spec.backup.encryption.kmip.client.clientCertificatePrefix

Tipo: string

spec.backup.snapshotSchedule

Tipo: colección

Contenedor de recopilación para configuraciones de programación de instantáneas para copias de seguridad continuas de recursos de MongoDB en el operador de Kubernetes.

spec.backup.snapshotSchedule.snapshotIntervalHours

Tipo: número

Número de horas entre instantáneas. Puede establecer un valor de 6, 8, 12 o 24.

spec.backup.snapshotSchedule.snapshotRetentionDays

Tipo: número

Número de días para guardar las instantáneas recientes. Puede establecer un valor entre 2 y 5, ambos inclusive.

spec.backup.snapshotSchedule.dailySnapshotRetentionDays

Tipo: número

Número de días para guardar las instantáneas diarias. Puede establecer un valor entre 1 y 365, ambos inclusive. Si se establece el valor en 0, se deshabilita esta regla.

spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeks

Tipo: número

Número de semanas para conservar los snapshots semanales. Puedes establecer un valor entre 1 y 52, inclusive. Configurar el valor a 0 deshabilita esta regla.

spec.backup.snapshotSchedule.monthlySnapshotRetentionMonths

Tipo: número

Número de meses para guardar instantáneas mensuales. Puede establecer un valor entre 1 y 36, ambos inclusive. Si se establece el valor en 0, se deshabilita esta regla.

spec.backup.snapshotSchedule.pointInTimeWindowHours

Tipo: número

Número de horas del pasado para las que puede crear una instantánea de un punto en el tiempo.

spec.backup.snapshotSchedule.referenceHourOfDay

Tipo: número

Hora UTC del día para programar instantáneas con un 24 reloj de horas. Puede establecer un valor entre 0 y,23 ambos inclusive.

spec.backup.snapshotSchedule.referenceMinuteOfHour

Tipo: número

MinutoUTC de la hora para programar instantáneas. Puede establecer un valor entre 0 y,59 ambos inclusive.

spec.backup.snapshotSchedule.fullIncrementalDayOfWeek

Tipo: string

Día de la semana en que Ops Manager toma una snapshot completa. Esta configuración garantiza una copia de seguridad completa reciente. Ops Manager establece el valor por defecto en SUNDAY.

spec.clusterName

Tipo: string

Predeterminado: cluster.local

Importante

spec.clusterName está obsoleto

Utilice en su spec.clusterDomain lugar.

Nombre de dominio del clúster de Kubernetes donde se implementa el operador de Kubernetes. Cuando Kubernetes crea un StatefulSet, asigna un FQDN a cada pod. Para actualizar Cloud Manager u Ops Manager, el operador de Kubernetes calcula el FQDN de cada pod utilizando el nombre de clúster proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

Advertencia

Debe configurar si su clúster spec.clusterDomain de Kubernetes tiene un dominio predeterminado distinto del cluster.local predeterminado. Si no usa el dominio predeterminado ni configura la spec.clusterDomain opción, es posible que el operador de Kubernetes no funcione correctamente.

spec.connectivity.replicaSetHorizons

Tipo: colección

Permite proporcionar diferentes configuraciones de DNS para las aplicaciones cliente y los agentes de MongoDB. El operador de Kubernetes utiliza DNS de horizonte dividido para los miembros del conjunto de réplicas. Esta función permite la comunicación tanto dentro del clúster de Kubernetes como desde fuera de él.

Puede agregar múltiples asignaciones externas por host.

Requisitos de Split Horizon:

Ejemplo

En este ejemplo, los miembros del conjunto de réplicas se comunican entre sí en el horizonte example-localhost. Los clientes se comunican con el conjunto de réplicas mediante el horizonte example-website.

Los nombres de los horizontes indicados son arbitrarios para este ejemplo. Puede nombrar su horizonte como desee, pero asegúrese de que el nombre sea el mismo para todos los nombres de host que lo componen.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "4.2.2-ent"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 persistent: true
15 security:
16 tls:
17 enabled: true
18 connectivity:
19 replicaSetHorizons:
20 - "example-website": "web1.example.com:30907"
21 - "example-website": "web2.example.com:32350"
22 - "example-website": "web3.example.com:31185"
23...
spec.externalAccess.externalDomain

Tipo: string

Un dominio externo utilizado para exponer externamente la implementación de su conjunto de réplicas.

De forma predeterminada, cada miembro del conjunto de réplicas usa el FQDN del pod de Kubernetes*.svc.cluster.local () como nombre de host predeterminado. Sin embargo, si se agrega un dominio externo a esta configuración, el conjunto de réplicas usa un nombre de host que es un subdominio del dominio especificado. Este nombre de host tiene el siguiente formato:

<replica-set-name>-<pod-idx>.<externalDomain>

Por ejemplo:

replica-set-1.example.com

Después de implementar el conjunto de réplicas con esta configuración, el operador de Kubernetes usa el nombre de host con el dominio externo para anular el processes[n].hostname campo en la configuración de automatización de Ops Manager. A continuación, el agente de MongoDB usa este nombre de host para conectarse mongod a.

Para especificar otros nombres de host para conectarse al set de réplicas, se puede utilizar la configuración de spec.connectivity.replicaSetHorizons. Sin embargo, las siguientes conexiones aún usan el nombre de host con el dominio externo:

  • El agente de MongoDB se conecta a mongod.

  • mongod para conectarse a otras mongod instancias.

ADVERTENCIA: Al especificar este campo, se modifica la forma en que Ops Manager registra mongod los procesos. Solo se puede especificar este campo para nuevas implementaciones de conjuntos de réplicas a partir de la versión del operador de Kubernetes.1.19 No se puede cambiar el valor de este campo ni de ningún processes[n].hostname campo en la configuración de automatización de Ops Manager para una implementación de conjuntos de réplicas en ejecución.

spec.members

Tipo: entero

Obligatorio. Número de miembros del conjunto de réplicas.

spec.memberConfig

Tipo: colección

Especificación para cada miembro del conjunto de réplicas de MongoDB implementado desde el recurso MongoDB.

El orden de los elementos en el arreglo debe reflejar el orden de los miembros en el set de réplicas. Por ejemplo, el primer elemento del arreglo afecta al Pod en el índice 0, el segundo elemento afecta al índice 1 y así sucesivamente.

Ejemplo

Considere la siguiente especificación de ejemplo para un conjunto de réplicas de tres miembros:

spec:
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- votes: 0
priority: "0.5"
tags:
tag2: "value2"
environment: "prod"
spec.memberConfig.priority

Tipo: string

Número que indica la probabilidad relativa de que un miembro del conjunto de réplicas de MongoDB se convierta en el principal.

  • Para aumentar la probabilidad relativa de que un miembro del conjunto de réplicas se convierta en el principal, especifique un valor priority más alto.

  • Para disminuir la probabilidad relativa de que un miembro del conjunto de réplicas se convierta en el principal, especifique un valor priority más bajo.

Por ejemplo, un miembro con un memberConfig.priority de 1.5 tiene más probabilidades de convertirse en el principal que un miembro con un memberConfig.priority de 0.5.

Un miembro con un memberConfig.priority de 0 no puede ser el miembro principal. Para obtener más información, consulte Prioridad de miembros.

spec.memberConfig.tags

Tipo: mapa

Mapa de etiquetas de conjuntos de réplicas para dirigir operaciones de lectura y escritura a miembros específicos de su conjunto de réplicas de MongoDB.

spec.memberConfig.votes

Tipo: número

Determina si un miembro del conjunto de réplicas de MongoDB puede votar en una elección. Se establece en 1 para permitir que el miembro vote. Se establece en 0 para excluirlo de una elección.

Las siguientes configuraciones se aplican únicamente a los tipos de recursos del conjunto de réplicas:

spec.backup.autoTerminateOnDeletion

Tipo: booleano

Indicador que controla si el operador de Kubernetes detiene y finaliza la copia de seguridad al eliminar un recurso de MongoDB. Si se omite, el valor predeterminado false es. Establecer este indicador en true es útil si desea eliminar el recurso personalizado de MongoDB mientras el valor está spec.backup.mode establecido enabled en.

Importante

Las implementaciones de clústeres fragmentados de múltiples clústeres se encuentran actualmente en versión preliminar pública.

Nota

Todos los ajustes de set de réplicas también se aplican a los recursos de clúster, salvo que se indique lo contrario.

Las siguientes configuraciones se aplican únicamente a los tipos de recursos de clúster fragmentados:

spec.backup.snapshotSchedule.clusterCheckpointIntervalMin

Tipo: número

Número de minutos entre puntos de control sucesivos del clúster. Esta configuración solo se aplica a clústeres fragmentados que ejecutan MongoDB con una versión de compatibilidad de funciones 4.0 o anterior. Este número determina la granularidad de las restauraciones puntuales para clústeres fragmentados. Puede establecer un valor de 15, 30 o 60.

spec.configServerCount

Tipo: entero

Obligatorio. Número de miembros en el servidor de configuración.

spec.configSrv.additionalMongodConfig

Tipo: colección

Opciones de configuración adicionales con las que desea iniciar cada miembro del servidor de configuración.

El operador de Kubernetes admite todas las opciones de configuración que admite la versión de MongoDB que implementa a través del agente de MongoDB, excepto que el operador de Kubernetes anula los valores que proporciona para cualquiera de las siguientes opciones:

Para obtener más información sobre las opciones de configuración que posee el operador de Kubernetes, consulte Configuración exclusiva del operador de Kubernetes de MongoDB.

Para saber qué opciones de configuración puedes utilizar, consulta Opciones avanzadas para implementaciones de MongoDB en la documentación de Ops Manager.

spec.configSrv.agent

Tipo: colección

Configuración del agente MongoDB para cada miembro del servidor de configuración.

spec.configSrv.agent.startupOptions

Tipo: colección

Configuración del agente MongoDB con la que desea iniciar cada miembro del servidor de configuración.

Debe proporcionar la configuración del Agente MongoDB como pares clave-valor. Los valores deben ser cadenas.

Para obtener una lista de las configuraciones del agente MongoDB compatibles, consulte:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.configSrvPodSpec

Tipo: objeto

Objeto que contiene las especificaciones para los pods del servidor de configuración CustomResourceDefinition de MongoDB.

spec.configSrvPodSpec.persistence.single

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte los tres directorios para datos, diario y registros en el mismo volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o las colecciones persistence.multiple, pero no ambas.

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 predeterminado es 5Gi.

Por ejemplo, si cada miembro del servidor de configuración requiere 60 gigabytes de espacio de almacenamiento, configure este valor 60Gi en.

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úrese de configurar la clase de almacenamiento reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.configSrvPodSpec.persistence.multiple.data

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para datos en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del servidor de configuración en Kubernetes. 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 este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del servidor de configuración. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.configSrvPodSpec.persistence.multiple.journal

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para el diario en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del servidor de configuración en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 1Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del servidor de configuración. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.configSrvPodSpec.persistence.multiple.logs

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para registros en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del servidor de configuración en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 3Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del servidor de configuración. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.configSrvPodSpec.podTemplate

Tipo: colección

Plantilla para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del servidor de configuración.

Los valores de plantilla tienen prioridad sobre los valores especificados en spec.configSrvPodSpec.

Nota

El operador de Kubernetes no valida los campos que proporcionas en spec.configSrvPodSpec.podTemplate.

spec.configSrvPodSpec.podTemplate.affinity.podAffinity

Tipo: colección

Regla de Kubernetes para determinar si varios MongoDB pods de recursos deben ubicarse junto a otros pods. Para obtener más información sobre los casos de uso, consulte Afinidad y Antiafinidad en la documentación de Kubernetes.

spec.configSrvPodSpec.podTemplate.affinity.nodeAffinity

Tipo: colección

Regla de Kubernetes para colocar pods para el conjunto de réplicas en un rango específico de nodos.

Para un rendimiento de lectura-escritura optimizado, utiliza reglas de afinidad de nodos que restrinjan los Pods para ejecutarse en nodos en particular, o para dar preferencia a la ejecución en nodos en particular.

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Establece una regla para MongoDB distribuir los pods que alojan el recurso en diferentes ubicaciones. Una ubicación puede ser un solo nodo, un rack o una región. De forma predeterminada, el operador de Kubernetes intenta distribuir los pods entre diferentes nodos.

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Esta clave define qué etiqueta se utiliza para determinar a qué dominio de topología pertenece un nodo.

spec.configSrvPodSpec.podTemplate.metadata

Tipo: colección

Metadatos para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del servidor de configuración.

Para revisar qué campos puedes agregar spec.configSrvPodSpec.podTemplate.metadata a, consulta la documentación de Kubernetes.

spec.configSrvPodSpec.podTemplate.spec

Tipo: colección

Especificaciones de los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del servidor de configuración.

Para revisar qué campos puedes agregar spec.configSrvPodSpec.podTemplate.spec a, consulta la API principal de Kubernetes PodSpec v.1

Nota

Al agregar contenedores spec.configSrvPodSpec.podTemplate.spec.containers a, el operador de Kubernetes los agrega al pod de Kubernetes. Estos contenedores se agregan a cada contenedor miembro del servidor de configuración del pod.

Utilice esta configuración para especificar las asignaciones de CPU y RAM para cada pod. Para ver ejemplos, consulte los ejemplos en GitHub.

spec.mongodsPerShardCount

Tipo: entero

Obligatorio. Número de miembros por fragmento.

spec.mongosCount

Tipo: entero

Obligatorio. Número de instancias en mongos el clúster fragmentado.

spec.mongos.additionalMongodConfig

Tipo: colección

Opciones de configuración adicionales con las que desea iniciar cada instancia de mongos.

El operador de Kubernetes admite todas las opciones de configuración que admite la versión de MongoDB que implementa a través del agente de MongoDB, excepto que el operador de Kubernetes anula los valores que proporciona para cualquiera de las siguientes opciones:

Para obtener más información sobre las opciones de configuración que posee el operador de Kubernetes, consulte Configuración exclusiva del operador de Kubernetes de MongoDB.

Para saber qué opciones de configuración puedes utilizar, consulta Opciones avanzadas para implementaciones de MongoDB en la documentación de Ops Manager.

spec.mongos.agent

Tipo: colección

Configuración del agente MongoDB para cada instancia.mongos

spec.mongos.agent.startupOptions

Tipo: colección

Configuración del agente MongoDB con la que desea iniciar cada mongos instancia.

Debe proporcionar la configuración del Agente MongoDB como pares clave-valor. Los valores deben ser cadenas.

Para obtener una lista de las configuraciones del agente MongoDB compatibles, consulte:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.mongosPodSpec

Tipo: objeto

Objeto que contiene las especificaciones para los pods de MongoDB CustomResourceDefinition.

spec.mongosPodSpec.podTemplate

Tipo: colección

Plantilla para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada mongos instancia.

Los valores de plantilla tienen prioridad sobre los valores especificados en spec.mongosPodSpec.

Nota

El operador de Kubernetes no valida los campos que proporcionas en spec.mongosPodSpec.podTemplate.

spec.mongosPodSpec.podTemplate.affinity.podAffinity

Tipo: colección

Opcional. Regla de Kubernetes para determinar si varios MongoDB pods de recursos deben ubicarse junto a otros pods.

spec.mongosPodSpec.podTemplate.affinity.nodeAffinity

Tipo: colección

Regla de Kubernetes para colocar pods para el conjunto de réplicas en un rango específico de nodos.

Para un rendimiento de lectura-escritura optimizado, utiliza reglas de afinidad de nodos que restrinjan los Pods para ejecutarse en nodos en particular, o para dar preferencia a la ejecución en nodos en particular.

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Establece una regla para MongoDB distribuir los pods que alojan el recurso en diferentes ubicaciones. Una ubicación puede ser un solo nodo, un rack o una región. De forma predeterminada, el operador de Kubernetes intenta distribuir los pods entre diferentes nodos.

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Esta clave define qué etiqueta se utiliza para determinar a qué dominio de topología pertenece un nodo.

spec.mongosPodSpec.podTemplate.metadata

Tipo: colección

Metadatos para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada mongos instancia.

Para revisar qué campos puedes agregar spec.mongosPodSpec.podTemplate.metadata a, consulta la documentación de Kubernetes.

spec.mongosPodSpec.podTemplate.spec

Tipo: colección

Especificaciones de los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada mongos instancia.

Para revisar qué campos puedes agregar spec.mongosPodSpec.podTemplate.spec a, consulta la API principal de Kubernetes PodSpec v.1

Nota

Al agregar contenedores spec.mongosPodSpec.podTemplate.spec.containers a, el operador de Kubernetes los agrega al pod de Kubernetes. Estos contenedores se agregan a cada contenedor de instancia del mongos pod.

Utilice esta configuración para especificar las asignaciones de CPU y RAM para cada pod. Para ver ejemplos, consulte los ejemplos en GitHub.

spec.shardCount

Tipo: entero

Obligatorio. Número de fragmentos en el clúster fragmentado.

spec.shard.additionalMongodConfig

Tipo: colección

Opciones de configuración adicionales con las que desea iniciar cada miembro del fragmento del clúster fragmentado.

El operador de Kubernetes admite todas las opciones de configuración que admite la versión de MongoDB que implementa a través del agente de MongoDB, excepto que el operador de Kubernetes anula los valores que proporciona para cualquiera de las siguientes opciones:

Para obtener más información sobre las opciones de configuración que posee el operador de Kubernetes, consulte Configuración exclusiva del operador de Kubernetes de MongoDB.

Para saber qué opciones de configuración puedes utilizar, consulta Opciones avanzadas para implementaciones de MongoDB en la documentación de Ops Manager.

spec.shard.agent

Tipo: colección

Configuración del agente MongoDB para cada miembro del fragmento del clúster fragmentado.

spec.shard.agent.startupOptions

Tipo: colección

Configuración del agente MongoDB con la que desea iniciar cada miembro del fragmento del clúster fragmentado.

Debe proporcionar la configuración del Agente MongoDB como pares clave-valor. Los valores deben ser cadenas.

Para obtener una lista de las configuraciones del agente MongoDB compatibles, consulte:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.shardPodSpec

Tipo: objeto

Objeto que contiene las especificaciones para los pods del fragmento CustomResourceDefinition de MongoDB.

spec.shardPodSpec.persistence.multiple.data

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para datos en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del fragmento del clúster en Kubernetes. 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 este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del fragmento del clúster fragmentado. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.shardPodSpec.persistence.multiple.journal

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para el diario en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del fragmento del clúster en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 1Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del fragmento del clúster fragmentado. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.shardPodSpec.persistence.multiple.logs

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte un directorio para registros en su propio volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o la colección persistence.single, pero no ambas.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Capacidad mínima de almacenamiento que debe estar disponible en un nodo de Kubernetes para alojar cada miembro del fragmento del clúster en Kubernetes. Este valor se expresa como un entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor predeterminado es 3Gi.

Por ejemplo, si este recurso MongoDB requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento necesario para cada miembro del fragmento del clúster fragmentado. 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 reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

spec.shardPodSpec.podTemplate

Tipo: colección

Plantilla para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del fragmento del clúster fragmentado.

Los valores de plantilla tienen prioridad sobre los valores especificados en spec.shardPodSpec.

Nota

El operador de Kubernetes no valida los campos que proporcionas en spec.shardPodSpec.podTemplate.

spec.shardPodSpec.podTemplate.affinity.podAffinity

Tipo: string

Regla de Kubernetes para determinar si varios MongoDB pods de recursos deben ubicarse junto a otros pods. Para obtener más información sobre los casos de uso, consulte Afinidad y Antiafinidad en la documentación de Kubernetes.

spec.shardPodSpec.podTemplate.affinity.nodeAffinity

Tipo: string

Regla de Kubernetes para colocar pods para el conjunto de réplicas en un rango específico de nodos.

Para un rendimiento de lectura-escritura optimizado, utiliza reglas de afinidad de nodos que restrinjan los Pods para ejecutarse en nodos en particular, o para dar preferencia a la ejecución en nodos en particular.

spec.shardPodSpec.podTemplate.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Establece una regla para MongoDB distribuir los pods que alojan el recurso en diferentes ubicaciones. Una ubicación puede ser un solo nodo, un rack o una región. De forma predeterminada, el operador de Kubernetes intenta distribuir los pods entre diferentes nodos.

spec.shardPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Esta clave define qué etiqueta se utiliza para determinar a qué dominio de topología pertenece un nodo.

spec.shardPodSpec.podTemplate.metadata

Tipo: colección

Metadatos para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del fragmento del clúster fragmentado.

Para revisar qué campos puedes agregar spec.shardPodSpec.podTemplate.metadata a, consulta la documentación de Kubernetes.

spec.shardPodSpec.podTemplate.spec

Tipo: colección

Especificaciones de los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para cada miembro del fragmento del clúster fragmentado.

Para revisar qué campos puedes agregar spec.shardPodSpec.podTemplate.spec a, consulta la API principal de Kubernetes PodSpec v.1

Nota

Al agregar contenedores spec.shardPodSpec.podTemplate.spec.containers a, el operador de Kubernetes los agrega al pod de Kubernetes. Estos contenedores se agregan a cada contenedor miembro del fragmento del clúster fragmentado del pod.

Utilice esta configuración para especificar las asignaciones de CPU y RAM para cada pod. Para ver ejemplos, consulte los ejemplos en GitHub.

spec.shardSpecificPodSpec

Tipo: arreglo

Lista que contiene anulaciones de StatefulSet por fragmento.

spec.shardSpecificPodSpec.podTemplate

Tipo: colección

Plantilla para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para el fragmento específico.

Los valores de plantilla tienen prioridad sobre los valores especificados en spec.shardSpecificPodSpec.

Nota

El operador de Kubernetes no valida los campos que proporcionas en spec.shardSpecificPodSpec.podTemplate.

spec.shardSpecificPodSpec.podTemplate.affinity.podAffinity

Tipo: string

Regla de Kubernetes para determinar si varios MongoDB pods de recursos deben ubicarse junto a otros pods. Para obtener más información sobre los casos de uso, consulte Afinidad y Antiafinidad en la documentación de Kubernetes.

spec.shardSpecificPodSpec.podTemplate.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Establece una regla para MongoDB distribuir los pods que alojan el recurso en diferentes ubicaciones. Una ubicación puede ser un solo nodo, un rack o una región. De forma predeterminada, el operador de Kubernetes intenta distribuir los pods entre diferentes nodos.

spec.shardSpecificPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Esta clave define qué etiqueta se utiliza para determinar a qué dominio de topología pertenece un nodo.

spec.shardSpecificPodSpec.podTemplate.metadata

Tipo: colección

Metadatos para los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para el fragmento específico.

Para revisar qué campos puedes agregar spec.shardSpecificPodSpec.podTemplate.metadata a, consulta la documentación de Kubernetes.

spec.shardSpecificPodSpec.podTemplate.spec

Tipo: colección

Especificaciones de los pods de Kubernetes que el operador de Kubernetes de MongoDB Enterprise crea para el fragmento específico.

Para revisar qué campos puedes agregar spec.shardSpecificPodSpec.podTemplate.spec a, consulta la API principal de Kubernetes PodSpec v.1

Nota

Al agregar contenedores a spec.shardSpecificPodSpec.podTemplate.spec.containers, el operador de Kubernetes los agrega al pod de Kubernetes. Estos contenedores se agregan a los contenedores de fragmentos específicos del pod.

Utilice esta configuración para especificar las asignaciones de CPU y RAM para cada pod. Para ver ejemplos, consulte los ejemplos en GitHub.

spec.topology

Tipo: string

Opcional

Por defecto: SingleCluster

Define la topología del clúster fragmentado. No se puede modificar para una implementación existente. Si se establece en MultiCluster:

  • Todos los componentes del clúster fragmentado deben tener clusterSpecList definido:

    • spec.mongos.clusterSpecList

    • spec.configSrv.clusterSpecList

    • spec.shard.clusterSpecList

  • Los siguientes campos se ignoran, ya que sus valores equivalentes se pasan para cada clúster en los objetos spec.<section>.clusterSpecList:

    • spec.mongodsPerShardCount se define en spec.shard.clusterSpecList.members

    • spec.mongosCount se define en spec.mongos.clusterSpecList.members

    • spec.configServerCount se define en spec.configSrv.clusterSpecList.members

    • spec.shardOverrides.memberConfig se define en spec.shardOverrides.clusterSpecList.memberConfig

    • spec.shardOverrides.members se define en spec.shardOverrides.clusterSpecList.members

    • spec.shardOverrides.statefulSet se define en spec.shardOverrides.clusterSpecList.statefulSet

Ejemplo:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: sc
spec:
shardCount: 3
# we don't specify mongodsPerShardCount, mongosCount and configServerCount as they don't make sense for multi-cluster
topology: MultiCluster
type: ShardedCluster
version: 7.0.12
cloudManager:
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
shard:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # each shard will have 2 members in cluster 0, unless overriden
- clusterName: member-cluster-1
members: 2
- clusterName: member-cluster-2
members: 1
shardOverrides:
- shardNames: [sc-2] # this override will apply to the third shard (here, shards are indexed from 0 to 2 as we have 3 shards)
clusterSpecList:
- clusterName: member-cluster-0 # all other fields are optional, if not provided the fields from matching member cluster from shard.clusterSpecList will be taken by default
members: 3
- clusterName: member-cluster-1 # we don't deploy this shard to member-cluster-1
# Note that it is also possible to make it explicit with members: 0
# we don't provide entry for clusterName: member-cluster-1, so it won't be deployed there
- clusterName: member-cluster-2
members: 2
configSrv:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # config server will have 2 members in this cluster
- clusterName: member-cluster-1
members: 1
- clusterName: member-cluster-2
members: 2
mongos:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # router will have 2 members in this cluster
- clusterName: member-cluster-1
members: 1

Los siguientes campos se relacionan exclusivamente con implementaciones en las que topology=MultiCluster:

spec.configSrv.clusterSpecList

Nota

Este campo está disponible exclusivamente para implementaciones de clústeres fragmentados de múltiples clústeres, que actualmente se encuentran en versión preliminar pública.

Tipo: matriz de objetos

Obligatorio si topology=MultiCluster

Una matriz de objetos para usar en implementaciones de clústeres fragmentados de múltiples clústeres con los siguientes campos de nivel superior:

clusterName

Tipo: string

Nombre del clúster donde el operador MongoDB Enterprise Kubernetes programa el StatefulSet.

externalAccess

Tipo: colección

Especificación para exponer su implementación de MongoDB en un clúster multi-Kubernetes a conexiones externas. Para saber cómo conectarse a su implementación de MongoDB en un clúster multi-Kubernetes desde fuera del clúster de Kubernetes, consulte Conectarse a un recurso multi-clúster desde fuera de Kubernetes.

Esta configuración se aplica a los servicios de todos los clústeres. Para anular esta configuración global en un clúster específico, utilice spec.clusterSpecList.externalAccess.externalService.

Si spec.externalAccess agrega, el operador de Kubernetes crea un servicio externo para cada pod de un conjunto de réplicas. Los servicios externos proporcionan un punto de entrada externo para cada pod de base de datos MongoDB de un clúster. Cada servicio externo tiene selectores que lo asocian a un pod específico.

Si agrega esta configuración sin ningún valor, el operador de Kubernetes crea un servicio externo con los siguientes valores predeterminados:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del servicio externo. No se puede cambiar este valor.

Type

LoadBalancer

Crea un servicio LoadBalancer externo.

Port

<Port Number>

Un puerto mongod para.

publishNotReadyAddress

true

Especifica que los registros DNS se crean incluso si el pod no está listo. No se establece en false para ningún pod de base de datos.

Nota

Si configura spec.clusterSpecList.externalAccess.externalDomain, el servicio externo agrega otro puertoPort Number + 1 () para las copias de seguridad.

members

Tipo: número

Número de miembros en el conjunto de réplicas de MongoDB.

memberConfig

Tipo: colección

Especificación para cada fragmento de MongoDB y sus miembros en su implementación de MongoDB en un clúster de múltiples Kubernetes.

El orden de los elementos en el objeto del fragmento debe reflejar el orden de los miembros en el conjunto de réplicas. Por ejemplo, el primer elemento afecta al pod en el índice 0, el segundo al índice 1, y así sucesivamente.

Ejemplo

Considere la siguiente especificación de ejemplo para una implementación de MongoDB en un clúster de Kubernetes múltiple con tres conjuntos de réplicas:

apiVersion: mongodb.com/v1
kind: MongoDBMultiCluster
metadata:
name: multi-replica-set
spec:
version: 6.0.0-ent
type: ReplicaSet
duplicateServiceObjects: false
credentials: my-credentials
opsManager:
configMapRef:
name: my-project
clusterSpecList:
- clusterName: cluster1.example.com
members: 2
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- clusterName: cluster2.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- clusterName: cluster3.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
podSpec.persistence

Tipo: colección

Solo disponible en clusterSpecItem los objetos transferidos a spec.configSrv.clusterSpecList spec.shard.clusterSpecListy. Anula la configuración de persistencia existente para un clúster determinado.

statefulSet

Tipo: colección

Proporciona la configuración para la anulación de StatefulSet para cada uno de los StatefulSets del clúster en una implementación de MongoDB con clústeres multi-Kubernetes. Para establecer la configuración global que se aplica a todos los clústeres de su implementación de MongoDB con clústeres multi-Kubernetes, consulte spec.statefulSet.spec.

Esta configuración se aplica solo a los tipos de recursos de conjuntos de réplicas en implementaciones MongoDB de clústeres de Kubernetes múltiples.

spec.duplicateServiceObjects

Nota

Este campo está disponible exclusivamente para implementaciones de clústeres fragmentados de múltiples clústeres, que actualmente se encuentran en versión preliminar pública.

Tipo: booleano

Opcional

Por defecto: true

Se ignora si la topología no es MultiCluster. Se aplica a los servicios de todos los componentes del clúster fragmentado: mongos, configSrv y shards.

Si se establece en true:
El operador de Kubernetes crea todos los Pod Services de todos los clústeres miembros en cada clúster miembro.
Si se establece en false:
El operador de Kubernetes crea únicamente
spec.mongos.clusterSpecList

Nota

Este campo está disponible exclusivamente para implementaciones de clústeres fragmentados de múltiples clústeres, que actualmente se encuentran en versión preliminar pública.

Tipo: matriz de objetos

Obligatorio si topology=MultiCluster

Una matriz de objetos para usar en implementaciones de clústeres fragmentados de múltiples clústeres con los siguientes campos de nivel superior:

clusterName

Tipo: string

Nombre del clúster donde el operador MongoDB Enterprise Kubernetes programa el StatefulSet.

externalAccess

Tipo: colección

Especificación para exponer su implementación de MongoDB en un clúster multi-Kubernetes a conexiones externas. Para saber cómo conectarse a su implementación de MongoDB en un clúster multi-Kubernetes desde fuera del clúster de Kubernetes, consulte Conectarse a un recurso multi-clúster desde fuera de Kubernetes.

Esta configuración se aplica a los servicios de todos los clústeres. Para anular esta configuración global en un clúster específico, utilice spec.clusterSpecList.externalAccess.externalService.

Si spec.externalAccess agrega, el operador de Kubernetes crea un servicio externo para cada pod de un conjunto de réplicas. Los servicios externos proporcionan un punto de entrada externo para cada pod de base de datos MongoDB de un clúster. Cada servicio externo tiene selectores que lo asocian a un pod específico.

Si agrega esta configuración sin ningún valor, el operador de Kubernetes crea un servicio externo con los siguientes valores predeterminados:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del servicio externo. No se puede cambiar este valor.

Type

LoadBalancer

Crea un servicio LoadBalancer externo.

Port

<Port Number>

Un puerto mongod para.

publishNotReadyAddress

true

Especifica que los registros DNS se crean incluso si el pod no está listo. No se establece en false para ningún pod de base de datos.

Nota

Si configura spec.clusterSpecList.externalAccess.externalDomain, el servicio externo agrega otro puertoPort Number + 1 () para las copias de seguridad.

members

Tipo: número

Número de miembros en el conjunto de réplicas de MongoDB.

memberConfig

Tipo: colección

Especificación para cada fragmento de MongoDB y sus miembros en su implementación de MongoDB en un clúster de múltiples Kubernetes.

El orden de los elementos en el objeto del fragmento debe reflejar el orden de los miembros en el conjunto de réplicas. Por ejemplo, el primer elemento afecta al pod en el índice 0, el segundo al índice 1, y así sucesivamente.

Ejemplo

Considere la siguiente especificación de ejemplo para una implementación de MongoDB en un clúster de Kubernetes múltiple con tres conjuntos de réplicas:

apiVersion: mongodb.com/v1
kind: MongoDBMultiCluster
metadata:
name: multi-replica-set
spec:
version: 6.0.0-ent
type: ReplicaSet
duplicateServiceObjects: false
credentials: my-credentials
opsManager:
configMapRef:
name: my-project
clusterSpecList:
- clusterName: cluster1.example.com
members: 2
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- clusterName: cluster2.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- clusterName: cluster3.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
statefulSet

Tipo: colección

Proporciona la configuración para la anulación de StatefulSet para cada uno de los StatefulSets del clúster en una implementación de MongoDB con clústeres multi-Kubernetes. Para establecer la configuración global que se aplica a todos los clústeres de su implementación de MongoDB con clústeres multi-Kubernetes, consulte spec.statefulSet.spec.

Esta configuración se aplica solo a los tipos de recursos de conjuntos de réplicas en implementaciones MongoDB de clústeres de Kubernetes múltiples.

spec.shard.clusterSpecList

Nota

Este campo está disponible exclusivamente para implementaciones de clústeres fragmentados de múltiples clústeres, que actualmente se encuentran en versión preliminar pública.

Tipo: matriz de objetos

Obligatorio si topology=MultiCluster

Una matriz de objetos para usar en implementaciones de clústeres fragmentados de múltiples clústeres con los siguientes campos de nivel superior:

clusterName

Tipo: string

Nombre del clúster donde el operador MongoDB Enterprise Kubernetes programa el StatefulSet.

externalAccess

Tipo: colección

Especificación para exponer su implementación de MongoDB en un clúster multi-Kubernetes a conexiones externas. Para saber cómo conectarse a su implementación de MongoDB en un clúster multi-Kubernetes desde fuera del clúster de Kubernetes, consulte Conectarse a un recurso multi-clúster desde fuera de Kubernetes.

Esta configuración se aplica a los servicios de todos los clústeres. Para anular esta configuración global en un clúster específico, utilice spec.clusterSpecList.externalAccess.externalService.

Si spec.externalAccess agrega, el operador de Kubernetes crea un servicio externo para cada pod de un conjunto de réplicas. Los servicios externos proporcionan un punto de entrada externo para cada pod de base de datos MongoDB de un clúster. Cada servicio externo tiene selectores que lo asocian a un pod específico.

Si agrega esta configuración sin ningún valor, el operador de Kubernetes crea un servicio externo con los siguientes valores predeterminados:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del servicio externo. No se puede cambiar este valor.

Type

LoadBalancer

Crea un servicio LoadBalancer externo.

Port

<Port Number>

Un puerto mongod para.

publishNotReadyAddress

true

Especifica que los registros DNS se crean incluso si el pod no está listo. No se establece en false para ningún pod de base de datos.

Nota

Si configura spec.clusterSpecList.externalAccess.externalDomain, el servicio externo agrega otro puertoPort Number + 1 () para las copias de seguridad.

members

Tipo: número

Número de miembros en el conjunto de réplicas de MongoDB.

memberConfig

Tipo: colección

Especificación para cada fragmento de MongoDB y sus miembros en su implementación de MongoDB en un clúster de múltiples Kubernetes.

El orden de los elementos en el objeto del fragmento debe reflejar el orden de los miembros en el conjunto de réplicas. Por ejemplo, el primer elemento afecta al pod en el índice 0, el segundo al índice 1, y así sucesivamente.

Ejemplo

Considere la siguiente especificación de ejemplo para una implementación de MongoDB en un clúster de Kubernetes múltiple con tres conjuntos de réplicas:

apiVersion: mongodb.com/v1
kind: MongoDBMultiCluster
metadata:
name: multi-replica-set
spec:
version: 6.0.0-ent
type: ReplicaSet
duplicateServiceObjects: false
credentials: my-credentials
opsManager:
configMapRef:
name: my-project
clusterSpecList:
- clusterName: cluster1.example.com
members: 2
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- clusterName: cluster2.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- clusterName: cluster3.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
podSpec.persistence

Tipo: colección

Solo disponible en clusterSpecItem los objetos transferidos a spec.configSrv.clusterSpecList spec.shard.clusterSpecListy. Anula la configuración de persistencia existente para un clúster determinado.

statefulSet

Tipo: colección

Proporciona la configuración para la anulación de StatefulSet para cada uno de los StatefulSets del clúster en una implementación de MongoDB con clústeres multi-Kubernetes. Para establecer la configuración global que se aplica a todos los clústeres de su implementación de MongoDB con clústeres multi-Kubernetes, consulte spec.statefulSet.spec.

Esta configuración se aplica solo a los tipos de recursos de conjuntos de réplicas en implementaciones MongoDB de clústeres de Kubernetes múltiples.

spec.shardOverrides

Nota

Este campo está disponible exclusivamente para implementaciones de clústeres fragmentados de múltiples clústeres, que actualmente se encuentran en versión preliminar pública.

Tipo: matriz de objetos

Opcional

Lista que contiene las anulaciones por fragmento. Cada objeto contiene los siguientes campos:

  • shardNames

    Requerido

    El nombre del fragmento al que se aplica esta anulación.

  • podSpec.Persistence

    Opcional

    Define cómo el operador de Kubernetes crea y vincula volúmenes persistentes a fragmentos. Para topology=MultiCluster, establece la configuración de persistencia para todos los clústeres miembros. Puede definir la configuración de persistencia para un clúster miembro específico en spec.shardOverrides.clusterSpecList.persistence.

  • additionalMongodConfig

    Opcional

    Anulación específica de fragmento para spec.shard.additionalMongodConfig.

  • agent

    Opcional

    Anulación específica de fragmento para spec.shard.agent.

  • statefulSet

    Opcional

    Anulación específica de fragmento para spec.shardPodSpec.podTemplate y spec.shard.clusterSpecList.statefulSet.

  • members

    Opcional

    Solo disponible cuando topology=SingleCluster. Anulación específica del fragmento para anulación de spec.mongodsPerShardCount.

  • memberConfig

    Opcional

    Solo disponible cuando topology=SingleCluster. Anulación específica del fragmento para spec.shard.memberConfig.

spec.shardPodSpec.persistence.single

Tipo: colección

Hace que el operador de Kubernetes cree un reclamo de volumen persistente y monte los tres directorios para datos, diario y registros en el mismo volumen persistente.

Nota

  • Debes establecer los valores en esta colección spec.persistent : true si.

  • Puede configurar esta colección o las colecciones persistence.multiple, pero no ambas.

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

Por ejemplo, si cada miembro del fragmento del clúster fragmentado requiere 60 gigabytes de espacio de almacenamiento, configure este valor 60Gi en.

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úrese de configurar la clase de almacenamiento reclaimPolicy en Retener. Esto garantiza que los datos se conserven al eliminar una reclamación de volumen persistente.

Puede usar Prometheus con su recurso independiente, conjuntos de réplicas o clústeres fragmentados. Para obtener más información, consulte Implementar un recurso para usarlo con Prometheus. Para ver un ejemplo, consulte Recurso MongoDB con Prometheus.

Las siguientes configuraciones se aplican cuando utiliza Prometheus con su recurso MongoDB:

spec.prometheus

Tipo: arreglo

Opcional

Lista que contiene los parámetros para exponer métricas a Prometheus.

spec.prometheus.metricsPath

Tipo: string

Opcional

Por defecto: "/metrics"

Cadena legible que indica la ruta al punto de conexión de métricas. Si no se especifica esta configuración, se aplica la predeterminada.

spec.prometheus.passwordSecretRef

Tipo: objeto

Condicional

Objeto que contiene los detalles del secreto para la autenticación HTTP básica. Si desea usar Prometheus con su recurso MongoDB, debe especificar esta configuración.

spec.prometheus.passwordSecretRef.key

Tipo: string

Opcional

Por defecto: "password"

Cadena legible que identifica la clave en el secreto que almacena la contraseña para la autenticación HTTP básica. Si no se especifica esta configuración, se aplica la predeterminada.

spec.prometheus.passwordSecretRef.name

Tipo: string

Condicional

Etiqueta legible que identifica el secreto que contiene la contraseña para la autenticación HTTP básica. Si desea usar Prometheus con su recurso MongoDB, debe especificar esta configuración.

spec.prometheus.port

Tipo: entero

Opcional

Por defecto: 9216

Número que identifica el puerto al que se vinculará el endpoint de métricas. Si no se especifica esta configuración, se aplica el valor por defecto.

spec.prometheus.tlseSecretKeyRef

Tipo: objeto

Opcional

Objeto que contiene los detalles del secreto para la autenticación TLS.

spec.prometheus.tlseSecretKeyRef.key

Tipo: string

Opcional

Por defecto: "password"

Cadena legible que identifica la clave en el secreto que almacena la contraseña para la autenticación TLS. Si no se especifica esta configuración, se aplica la predeterminada.

spec.prometheus.tlseSecretKeyRef.name

Tipo: string

Condicional

Etiqueta legible por humanos que identifica el secreto que contiene la contraseña para la autenticación TLS. Si desea utilizar Prometheus con su recurso MongoDB y desea utilizar autenticación TLS, debe especificar esta configuración.

spec.prometheus.username

Tipo: string

Condicional

Etiqueta legible que identifica al usuario para la autenticación HTTP básica. Si desea usar Prometheus con su recurso MongoDB, debe especificar esta configuración.

Las siguientes configuraciones de seguridad se aplican únicamente a los tipos de recursos de conjuntos de réplicas y clústeres fragmentados:

spec.security.tls.enabled

Tipo: booleano

Por defecto: false

Importante

spec.security.tls.enabled está obsoleto a partir de la versión del operador de 1.19 Kubernetes. Para habilitar TLS, proporcione un valor para la spec.security.certsSecretPrefix configuración.

Cifra las comunicaciones mediante certificados TLS entre:

  • Hosts MongoDB en un conjunto de réplicas o una configuración de clúster fragmentado

  • Clientesmongo (shell, controladores, MongoDB Compass y otros) y la implementación de MongoDB

De forma predeterminada, net.ssl.mode se establece requireSSL en. Para cambiar el modo TLS utilizado para las conexiones de cliente y base de datos,spec.additionalMongodConfig.net.ssl.mode consulte.

spec.security.tls.ca

Tipo: string

Proporcione el nombre del ConfigMap que almacena la CA para el MongoDB recurso.

Importante

Si utiliza una CA personalizada para firmar sus certificados TLS para el MongoDB recurso, debe especificar este parámetro.

El operador de Kubernetes requiere que usted nombre el certificado de recurso MongoDB como ca-pem en ConfigMap.

spec.security.certsSecretPrefix

Tipo: string

Texto para agregar como prefijo a los secretos de Kubernetes que creó y que contienen las claves y certificados TLS de su conjunto de réplicas o clúster fragmentado.

Debes anteponer a tus secretos el prefijo <prefix>-<metadata.name>.

Por ejemplo, si llama a su implementación my-deployment y establece el prefijo,mdb debe asignarle al secreto TLS para las comunicaciones TLS del cliente el mdb-my-deployment-cert nombre. Además, debe asignarle al secreto TLS para la autenticación interna del clúster (si está habilitada) el mdb-my-deployment-clusterfile nombre.

Para obtener más información sobre cómo nombrar los secretos que contienen sus certificados TLS, consulte el tema Implementar un conjunto de réplicas que se aplique a su implementación.

spec.security.tls.additionalCertificateDomains

Tipo: booleano

Lista de todos los dominios que deben agregarse a los certificados TLS de cada pod en esta implementación. Al configurar este parámetro, cada CSR que el operador de Kubernetes transforma en un certificado TLS incluye un SAN con el <pod name>.<additional cert domain> formato.

Los recursos del conjunto de réplicas no necesitan este parámetro. Utilice en su spec.connectivity.replicaSetHorizons lugar.

Nota

Si agrega este parámetro a un recurso con TLShabilitado, Kubernetes muestra un error cuando el recurso alcanza el Pending estado. Este error muestra: Please manually remove the |csr| in order to proceed. Para solucionar este problema:

  1. Elimine cualquier CSRexistente para que Kubernetes pueda generar nuevas. Para saber cómo eliminar un recurso, consulte la sección sobre eliminación de recursos en la documentación de Kubernetes.

  2. Aprobar los CSRdespués de que Kubernetes los genere.

spec.additionalMongodConfig.net.ssl.mode

Tipo: string

Por defecto: requireSSL

Especifica qué sslMode se utiliza para las conexiones de red. Las siguientes son opciones válidas:

Valor
Descripción

allowSSL

Las conexiones entre servidores no utilizan TLS. Para las conexiones entrantes, el servidor acepta tanto TLS como no TLS.

preferSSL

Las conexiones entre servidores utilizan TLS. Para las conexiones entrantes, el servidor acepta tanto TLS como no TLS.

requireSSL

El servidor utiliza y acepta únicamente conexiones cifradas TLS.

spec.additionalMongodConfig.net.tls.disabledProtocols

Tipo: string

Novedades en la versión 4.2 de MongoDB.

Impide que un servidor MongoDB con TLS acepte conexiones entrantes que utilicen uno o más protocolos específicos. Para especificar varios protocolos, introduzca una lista de protocolos separados por comas. PorTLS1_0,TLS1_1 ejemplo,.

Esta configuración reconoce los siguientes protocolos: TLS1_0, TLS1_1, TLS1_2 y, a partir de MongoDB 4.0.4 (y 3.6.9), TLS1_3. Si especifica un protocolo no reconocido, el servidor no se iniciará.

En macOS, no se puede desactivar TLS1_1 y habilitar ambos TLS1_0 y TLS1_2. También debes desactivar al menos TLS1_0 o TLS1_2. Por ejemplo, TLS1_0,TLS1_1 desactiva TLS1_2 en macOS.

La lista de protocolos que deshabilita reemplaza la lista predeterminada de protocolos deshabilitados.

A partir de 4.0 la versión de MongoDB, MongoDB deshabilita el uso de TLS 1.0 si TLS 1.1o superior está disponible en el sistema. Para habilitar TLS. 1 0deshabilitado, especifique none como valor para. Para obtener más información sobre esta configuración,spec.additionalMongodConfig.net.tls.disabledProtocols consulte Deshabilitar TLS..10

Los nodos de los sets de réplicas y los clústeres fragmentados deben tener al menos un protocolo en común.

spec.security.authentication

Tipo: colección

Especificaciones de autenticación para su implementación de MongoDB.

spec.security.authentication.enabled

Tipo: booleano

Por defecto: false

Especifica si la autenticación está habilitada en el proyecto de Cloud Manager o de Ops Manager. Si se establece true en, debe configurar un mecanismo de autenticación spec.security.authentication.modes en.

Importante

El operador de Kubernetes administra la autenticación de este recurso de MongoDB si incluye esta configuración, incluso si está establecida en false. No puede configurar la autenticación para este recurso mediante la interfaz de usuario o las API de Cloud Manager u Ops Manager mientras esta configuración exista en la especificación del recurso.

Omita esta configuración si desea administrar la autenticación mediante la interfaz de usuario o las API de Cloud Manager o Ops Manager.

spec.security.authentication.modes

Tipo: arreglo

Especifica el mecanismo de autenticación que utiliza su implementación de MongoDB. Los valores válidos son SCRAM, SCRAM-SHA-1, MONGODB-CR, X509 y LDAP. Recomendamos SCRAM-SHA-256 (SCRAM) en lugar de SCRAM-SHA-1. Si especifica SCRAM-SHA-1, también debe especificar MONGODB-CR.

Nota

X.509 Autenticación interna del clúster

Para habilitar la autenticación del clúster interno X.509 para el proyecto Cloud Manager u Ops Manager, configure este valor en ["X509"] y especifique las siguientes configuraciones:

Si proporciona más de un valor para, también debe especificar un spec.security.authentication.modes valor spec.security.authentication.agents.mode para.

spec.security.authentication.internalCluster

Tipo: string

Especifica si X.509 autenticación interna de clúster está habilitada.

Para habilitar la autenticación interna del clúster X.509, configúrelo en "X509". Requiere que se especifiquen las siguientes configuraciones:

El operador de Kubernetes acepta los siguientes valores:

  • ["X509"]:X.509 La autenticación del clúster interno está habilitada.

  • "" o se omite: la autenticación del clúster interno no está habilitada.

Importante

Después de habilitar la autenticación del clúster interno, no podrá deshabilitarla.

spec.security.authentication.requireClientTLSAuthentication

Tipo: booleano

Por defecto: false

Especifica si el host de MongoDB requiere que los clientes se conecten mediante un certificado TLS. El valor predeterminado true es si se habilita la autenticación TLS.

Para habilitar la autenticación TLS, proporcione un valor para la spec.security.certsSecretPrefix configuración.

spec.security.authentication.ldap

Tipo: colección

Necesario para la autenticación LDAP.

Configura la autenticación LDAP para el proyecto de Cloud Manager u Ops Manager. Para habilitar la autenticación LDAP, spec.security.authentication.modes configure ["LDAP"] en.

spec.security.authentication.ldap.servers

Tipo: arreglo de cadenas

Necesario para la autenticación LDAP.

Lista de nombres de host y puertos de los servidores LDAP. Especifique los nombres de host con sus respectivos puertos en el siguiente formato:

spec:
security:
authentication:
ldap:
servers:
- "<hostname1>:<port1>"
- "<hostname2>:<port2>"
spec.security.authentication.ldap.timeoutMS

Tipo: entero

Especifica cuántos milisegundos debe esperar una solicitud de autenticación antes de expirar.

spec.security.authentication.ldap.transportSecurity

Tipo: string

Necesario para la autenticación LDAP.

Especifica si el servidor LDAP acepta TLS.

Si el servidor LDAP acepta TLS, establezca el valor tls en. Si no lo acepta, deje este valor en blanco o establézcalo none en.

Nota

Si especifica una cadena distinta de none o tls, Kubernetes Operator aún establece la configuración en tls.

spec.security.authentication.ldap.caConfigMapRef

Tipo: colección

Necesario para la autenticación LDAP con TLS.

ConfigMap que contiene una CA que valida el certificado TLS del servidor LDAP.

spec.security.authentication.ldap.caConfigMapRef.name

Tipo: string

Necesario para la autenticación LDAP con TLS.

Nombre del ConfigMap que contiene una CA que valida el certificado TLS del servidor LDAP.

spec.security.authentication.ldap.caConfigMapRef.key

Tipo: string

Necesario para la autenticación LDAP con TLS.

Nombre del campo que almacena la CA que valida el servidor LDAP del certificado TLS.

spec.security.authentication.ldap.bindQueryUser

Tipo: string

Necesario para la autenticación LDAP.

Nombre distinguidoLDAP al que MongoDB se vincula cuando se conecta al servidor LDAP.

spec.security.authentication.ldap.bindQueryPasswordSecretRef

Tipo: colección

Necesario para la autenticación LDAP.

Especifica el secreto que contiene la contraseña con la que MongoDB se vincula al conectarse al servidor LDAP.

spec.security.authentication.ldap.bindQueryPasswordSecretRef.name

Tipo: string

Necesario para la autenticación LDAP.

Nombre del secreto que contiene la contraseña con la que MongoDB se vincula al conectarse al servidor LDAP.

El secreto debe contener solo un password campo que almacena la contraseña.

spec.security.authentication.ldap.authzQueryTemplate

Tipo: string

Requerido para la autorización LDAP.

Una plantilla de URL de consulta LDAP con formato RFC4515 y RFC, ejecutada por MongoDB para obtener los grupos LDAP a los que pertenece el usuario. La consulta es relativa al host o hosts especificados en. Puede usar los siguientes tokens en la4516 spec.security.authentication.ldap.servers plantilla:

  • {USER}
    Sustituye el nombre de usuario autenticado, o el transformed nombre de usuario, en la consulta LDAP.
  • {PROVIDED_USER}
    Sustituye el nombre de usuario proporcionado, antes de la autenticación o la transformación LDAP, en la consulta LDAP. (Disponiblea partir de la versión de MongoDB) 4.2

Tip

Plantillas de query LDAP en el Manual de MongoDB

spec.security.authentication.agents.automationLdapGroupDN

Tipo: string

El nombre distintivo (DN) del grupo LDAP al que pertenece el usuario del Agente MongoDB.

Esta configuración es necesaria si:

spec.security.authentication.ldap.userToDNMapping

Tipo: string

Asigna el nombre de usuario proporcionado a mongod o para mongos la autenticación a un nombre distinguido (DN) LDAP.

Tip

security.ldap.userToDNMapping en el Manual de MongoDB

spec.security.authentication.ldap.userCacheInvalidationInterval

Tipo: entero

Especifica cuántos segundos espera MongoDB para vaciar la caché de usuarios LDAP. Por defecto, 30 segundos.

spec.security.authentication.agents

Tipo: colección

Configuración de autenticación del agente MongoDB para el proyecto Cloud Manager o Ops Manager.

spec.security.authentication.agents.mode

Tipo: string

El mecanismo de autenticación que utilizan los agentes de MongoDB para su implementación. Los valores válidos son,,,SCRAM SCARM-SHA-1MONGODB-CRX509 LDAPy. El valor que especifique también debe estar presente en.spec.security.authentication.modes Recomendamos SCRAM-SHA-256 ()SCRAM SCRAM-SHA-1en lugar de. Si SCRAM-SHA-1 especifica, también debe MONGODB-CR especificar.

Esta configuración es obligatoria si se ha especificado más de un valor para spec.security.authentication.modes.

spec.security.authentication.agents.automationUserName

Tipo: string

Nombre del usuario que los agentes de MongoDB utilizan para interactuar con su implementación de MongoDB. El nombre de usuario se asigna a un nombre distintivo (DN) LDAP según. El DN resultante debe existir previamente en su implementación spec.security.authentication.ldap.userToDNMapping LDAP.

Esta configuración es necesaria si spec.security.authentication.agents.mode LDAPes.

spec.security.authentication.agents.automationPasswordSecretRef

Tipo: colección

Detalles del secreto que contiene la contraseña del spec.security.authentication.agents.automationUserName usuario.

Esta configuración es necesaria si spec.security.authentication.agents.mode LDAPes.

spec.security.authentication.agents.automationPasswordSecretRef.name

Tipo: string

Nombre del secreto que contiene la contraseña para el usuario spec.security.authentication.agents.automationUserName. Debes crear este secreto en el mismo namespace en el que implementes el operador de Kubernetes:

kubectl create secret generic ldap-agent-user \
--from-literal="password=<password>" -n <metadata.namespace>

Este secreto debe contener una clave, cuyo valor coincida con la contraseña del usuario en su implementación de spec.security.authentication.agents.automationUserName LDAP.

Esta configuración es necesaria si spec.security.authentication.agents.mode LDAPes.

spec.security.authentication.agents.automationPasswordSecretRef.key

Tipo: string

Ingrese el spec.security.authentication.agents.automationPasswordSecretRef.name secreto que contiene la contraseña del usuario spec.security.authentication.agents.automationUserName en.

Esta configuración es necesaria si spec.security.authentication.agents.mode LDAPes.

spec.security.authentication.agents.clientCertificateSecretRef.name

Tipo: string

Especifica el secreto que contiene el certificado TLS del agente de MongoDB. Si se omite, el valor predeterminado agent-certs es.

Este secreto debe contener la mms-automation-agent-pem clave. El valor de esta clave debe ser un certificado TLS que el servidor pueda validar.

Debe crear este secreto en el mismo espacio de nombres en el que implementa el operador de Kubernetes:

kubectl create secret generic agent-certs \
--from-file=mms-automation-agent-pem=<automation-cert.pem> \
--namespace=<metadata.namespace>
spec.security.roles

Tipo: arreglo

Matriz que define roles definidos por el usuario que le brindan control de acceso detallado sobre su implementación de MongoDB.

Para habilitar roles definidos por el usuario,spec.security.authentication.enabled debe true ser.

Ejemplo

En este ejemplo, un rol definido por el usuario llamado customRole permite a los usuarios asignados a este rol:

  • Inserte documentos en la colección cats en la base de datos pets y

  • Busque e inserte documentos en la colección dogs en la base de datos pets.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "4.2.2-ent"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 persistent: true
15 security:
16 authentication:
17 enabled: true
18 modes:
19 - "SCRAM"
20 roles:
21 - role: "customRole"
22 db: admin
23 privileges:
24 - actions:
25 - insert
26 resource:
27 collection: cats
28 db: pets
29 - actions:
30 - insert
31 - find
32 resource:
33 collection: dogs
34 db: pets
35...
spec.security.roles.role

Tipo: string

Nombre del rol definido por el usuario.

spec.security.roles.db

Tipo: string

La base de datos en la que desea almacenar el rol definido por el usuario.

Ejemplo

admin

spec.security.roles.authenticationRestrictions

Tipo: arreglo

Matriz que define la dirección IP desde la cual y a la cual los usuarios asignados a este pueden spec.security.roles.role conectarse.

spec.security.roles.authenticationRestrictions.clientSource

Tipo: arreglo

Matriz de direcciones IP o bloques CIDR desde los que los usuarios asignados a este pueden spec.security.roles.role conectarse.

Los servidores MongoDB rechazan las solicitudes de conexión de los usuarios con este rol si las solicitudes provienen de un cliente que no está presente en esta matriz.

spec.security.roles.authenticationRestrictions.serverAddress

Tipo: arreglo

Matriz de direcciones IP o bloques CIDR a los que los usuarios asignados a este pueden spec.security.roles.role conectarse.

Los servidores MongoDB rechazan las solicitudes de conexión de los usuarios con este rol si el cliente solicita conectarse a un servidor que no está presente en esta matriz.

spec.security.roles.privileges

Tipo: arreglo

Matriz que describe los privilegios que poseen los usuarios a los que se les otorga este rol.

spec.security.roles.privileges.actions

Tipo: arreglo

Lista de acciones que pueden realizar los usuarios con este rol. Para ver la lista de valores aceptados, consulte "Acciones de privilegios" en el Manual de MongoDB para las versiones de MongoDB que implemente con el operador de Kubernetes.

spec.security.roles.privileges.resource

Tipo: colección

Recursos para los que se actions aplica el privilegio.

Esta colección debe incluir:

spec.security.roles.privileges.resource.database

Tipo: string

Base de datos para la que se actions aplica el privilegio.

Si proporciona un valor para esta configuración, también debe proporcionar un valor spec.security.roles.privileges.resource.collection para.

spec.security.roles.privileges.resource.collection

Tipo: string

Colección en el para la database actions que se aplica el privilegio.

Si proporciona un valor para esta configuración, también debe proporcionar un valor spec.security.roles.privileges.resource.database para.

spec.security.roles.privileges.resource.cluster

Tipo: booleano

Por defecto: False

Marca que indica que el privilegio se aplica a todas las bases de datos y colecciones de la implementación de MongoDB. Si se omite, el valor actions predeterminado false es.

Si está configurado como verdadero, no se deben proporcionar valores para spec.security.roles.privileges.resource.database y spec.security.roles.privileges.resource.collection.

El siguiente ejemplo muestra una especificación de recursos para una implementación independiente con todas las configuraciones proporcionadas:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-standalone
spec:
version: "4.2.2-ent"
service: my-service
opsManager: # Alias of cloudManager
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
type: Standalone
additionalMongodConfig:
systemLog:
logAppend: true
verbosity: 4
operationProfiling:
mode: slowOp
podSpec:
persistence:
single:
storage: "12Gi"
storageClass: standard
labelSelector:
matchExpressions:
- {key: environment, operator: In, values: [dev]}
podTemplate:
metadata:
labels:
label1: mycustomlabel
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: "mykey"
weight: 50
...

El siguiente ejemplo muestra una especificación de recursos para un conjunto de réplicas con todas las configuraciones proporcionadas:

---
apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-replica-set
spec:
members: 3
version: "6.0.0-ent"
service: my-service
opsManager: # Alias of cloudManager
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
type: ReplicaSet
podSpec:
persistence:
multiple:
data:
storage: "10Gi"
journal:
storage: "1Gi"
labelSelector:
matchLabels:
app: "my-app"
logs:
storage: "500M"
storageClass: standard
podTemplate:
metadata:
labels:
label1: mycustomlabel
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: "mykey"
weight: 50
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: "mykey"
weight: 50
security:
certsSecretPrefix: "prefix"
tls:
ca: custom-ca
authentication:
enabled: true
modes: ["X509"]
internalCluster: "X509"
statefulSet:
spec:
serviceName: my-service
additionalMongodConfig:
net:
ssl:
mode: preferSSL
...

El siguiente ejemplo muestra una especificación de recursos para un clúster fragmentado con todas las configuraciones proporcionadas:

---
apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-sharded-cluster
spec:
shardCount: 2
mongodsPerShardCount: 3
mongosCount: 2
configServerCount: 3
version: "6.0.0-ent"
service: my-service
type: ShardedCluster
## Please Note: The default Kubernetes cluster name is
## `cluster.local`.
## If your cluster has been configured with another name, you can
## specify it with the `clusterDomain` attribute.
opsManager: # Alias of cloudManager
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
configSrvPodSpec:
# if "persistence" element is omitted then Operator uses the
# default size (5Gi) for mounting single Persistent Volume
podTemplate:
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: nodeId
mongosPodSpec:
podTemplate:
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: nodeId
shardPodSpec:
persistence:
multiple:
# if the child of "multiple" is omitted then the default size will be used.
# 16GB for "data", 1GB for "journal", 3GB for "logs"
data:
storage: "20Gi"
logs:
storage: "4Gi"
storageClass: standard
podTemplate:
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: nodeId
mongos:
additionalMongodConfig:
systemLog:
logAppend: true
verbosity: 4
configSrv:
additionalMongodConfig:
operationProfiling:
mode: slowOp
shard:
additionalMongodConfig:
storage:
journal:
commitIntervalMs: 50
security:
certsSecretPrefix: "prefix"
tls:
ca: custom-ca
authentication:
enabled: true
modes: ["X509"]
internalCluster: "X509"
statefulSet:
spec:
serviceName: my-service
...

Las siguientes configuraciones de statefulSets se aplican únicamente a los tipos de recursos de conjuntos de réplicas y clústeres fragmentados.

spec.statefulSet.spec

Tipo: colección

Especificación para el StatefulSet que crea el MongoDB Enterprise Kubernetes Operator para MongoDB recursos.

spec.statefulSet.spec.serviceName

Tipo: string

Predeterminado: <resource_name>-svc y <resource_name>-svc-external

Nombre del servicio de Kubernetes que se creará o usará para un StatefulSet. Si el servicio con este nombre ya existe, el operador de Kubernetes de MongoDB Enterprise no lo elimina ni lo vuelve a crear. Esta configuración le permite crear sus propios servicios personalizados y que el operador de Kubernetes los reutilice.

Volver

Usuario de MongoDB

En esta página