Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Especificación de Ops Manager de recursos

El Operador de Kubernetes de controladores de MongoDB crea una implementación de Ops Manager en contenedores a partir de archivos de especificación que tu creas.

Después de crear o actualizar una especificación de recurso Ops Manager, debe indicar a MongoDB Controllers for Kubernetes Operator (el Operador de Kubernetes para los Controladores de MongoDB) que aplique esta especificación a su entorno de Kubernetes. El Operador de Kubernetes crea los servicios y recursos personalizados de Kubernetes que Ops Manager requiere, luego implementa Ops Manager y su base de datos de la aplicación de respaldo en contenedores en su entorno de Kubernetes.

Cada recurso de Ops Manager usa una especificación objeto en YAML para definir las características y configuraciones de la implementación.

Los siguientes ejemplos muestran una especificación de recursos para una implementación de Ops Manager:

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: SingleCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator
8replicas: 1
9version: "8.0.0"
10 adminCredentials: ops-manager-admin-secret
11 configuration:
12 mms.fromEmailAddr: admin@example.com
13 mms.security.allowCORS: "false"
14 security:
15 tls:
16 ca: issuer-ca
17 backup:
18 enabled: true
19 encryption:
20 kmip:
21 server:
22 url: kmip.corp.mongodb.com:5696
23 ca: mongodb-kmip-certificate-authority-pem
24 headDB:
25 storage: "30Gi"
26 labelSelector:
27 matchLabels:
28 app: my-app
29 opLogStores:
30 - name: oplog1
31 # Sets labels for the oplog store.
32 assignmentLabels: ["test1", "test2"]
33 mongodbResourceRef:
34 name: my-oplog-db
35 mongodbUserRef:
36 name: my-oplog-user
37 s3Stores:
38 - name: s3store1
39 # Sets labels for the S3 store.
40 assignmentLabels: ["test1", "test2"]
41
42 mongodbResourceRef:
43 name: my-s3-metadata-db
44 mongodbUserRef:
45 name: my-s3-store-user
46 s3SecretRef:
47 name: my-s3-credentials
48 pathStyleAccessEnabled: true
49 s3BucketEndpoint: s3.region.amazonaws.com
50 s3BucketName: my-bucket
51 applicationDatabase:
52 passwordSecretKeyRef:
53 name: om-db-user-secret
54 key: password
55 members: 3
56 topology: SingleCluster
57 version: "7.0.21-ubi8"
58 featureCompatibilityVersion: "6.0" # During upgrade, set this FCV value to your currently deployed AppDB version.
59 security:
60 certsSecretPrefix: appdb
61 tls:
62 ca: issuer-ca
1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: MultiCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.lb.example.com # optional OM URL for the operator
8 clusterSpecList: # optional ClusterSpecOMItem list, the type is different than ClusterSpecItem for AppDB and MongoDB
9 - clusterName: cluster-1 # required
10 replicas: 1 # required, OM application replicas
11 # optional parameters to override those defined at MongoDBOpsManager level
12 clusterDomain: cluster-1.example.com # optional, default cluster.local
13 jvmParameters: ["-Xmx4352m","-Xms4352m"]
14 externalConnectivity: # optional to override
15 type: LoadBalancer
16 port: 9090
17 annotations:
18 key: value
19 statefulSet: # StatefulSetSpecWrapper override
20 spec: {}
21 metadata: {}
22 configuration:
23 automation.versions.source: mongodb
24 mms.adminEmailAddr: cloud-manager-support@mongodb.com
25 backup: # MongoDBOpsManagerBackup, optional, we only support a subset of fields
26 members: 1 # backup daemon replicas, optional, default=1
27 assignmentLabels: [] # assignment labels to override
28 jvmParameters: ["-Xmx4352m","-Xms4352m"] # optional
29 statefulSet: # mdbc.StatefulSetConfiguration, optional to override for backup daemon
30 spec: {}
31 metadata: {}
32 - clusterName: cluster-2
33 replicas: 1
34
35 ....
36
37replicas: 1
38 version: "8.0.0"
39 adminCredentials: ops-manager-admin-secret
40 configuration:
41 mms.fromEmailAddr: admin@example.com
42 mms.security.allowCORS: "false"
43 backup:
44 enabled: true
45 encryption:
46 kmip:
47 server:
48 url: kmip.corp.mongodb.com:5696
49 ca: mongodb-kmip-certificate-authority-pem
50 headDB:
51 storage: "30Gi"
52 labelSelector:
53 matchLabels:
54 app: my-app
55 opLogStores:
56 - name: oplog1
57 # Sets labels for the oplog store.
58 assignmentLabels: ["test1", "test2"]
59 mongodbResourceRef:
60 name: my-oplog-db
61 mongodbUserRef:
62 name: my-oplog-user
63 s3Stores:
64 - name: s3store1
65 # Sets labels for the S3 store.
66 assignmentLabels: ["test1", "test2"]
67
68 mongodbResourceRef:
69 name: my-s3-metadata-db
70 mongodbUserRef:
71 name: my-s3-store-user
72 s3SecretRef:
73 name: my-s3-credentials
74 pathStyleAccessEnabled: true
75 s3BucketEndpoint: s3.region.amazonaws.com
76 s3BucketName: my-bucket
77 security:
78 tls:
79 ca: issuer-ca
80 applicationDatabase:
81 passwordSecretKeyRef:
82 name: om-db-user-secret
83 key: password
84 version: "8.0.0-ubi8"
85 topology: MultiCluster
86 clusterSpecList:
87 - clusterName: cluster1.example.com
88 members: 4
89 - clusterName: cluster2.example.com
90 members: 3
91 - clusterName: cluster3.example.com
92 members: 2
93 security:
94 certsSecretPrefix: appdb
95 tls:
96 ca: issuer-ca

Esta sección describe la configuración que se debe utilizar para todos los recursos de Ops Manager.

apiVersion

Tipo: string

Obligatorio. Versión del esquema del recurso de Kubernetes para MongoDB.

kind

Tipo: string

Requerido. Tipo de recurso de MongoDB Kubernetes a crear. Establece esto en MongoDBOpsManager.

metadata.name

Tipo: string

Obligatorio. Nombre del recurso de MongoDB Kubernetes que estás creando.

Los nombres de recursos deben tener 44 caracteres o menos.

spec.version

Tipo: string

Obligatorio. Versión de Ops Manager que desea instalar en este recurso de MongoDB Kubernetes.

spec.adminCredentials

Tipo: string

Obligatorio. Nombre del secreto de Kubernetes que creó para el usuario administrador de Ops Manager. Cuando implementes el recurso Ops Manager, el Operador de Kubernetes crea un usuario con estas credenciales.

Nota

Para evitar almacenar secretos en implementaciones de Kubernetes de un solo clúster, puedes migrar todos los secretos a una herramienta de almacenamiento de secretos. Las implementaciones en múltiples clústeres de Kubernetes no admiten el almacenamiento de secretos en herramientas de almacenamiento de secretos, como HashiCorp Vault.

Al usuario administrador se le otorga el rol Propietario global.

spec.replicas

Tipo: entero

Condicional. Número de instancias de Ops Manager que se ejecutarán en paralelo. Si especificas SingleCluster en spec.topology, este parámetro es obligatorio. El valor mínimo aceptado es 1.

Si especificas MultiCluster en spec.topology, este parámetro se ignorará.

Los recursos de Ops Manager también pueden usar las siguientes configuraciones:

spec.backup.fileSystemStores

Tipo: string

Nombre que identifica tu almacenamiento de snapshot del sistema de archivos. Para obtener más información, consulte Configurar el almacén de copia de seguridad del sistema de archivos con Kubernetes operador.

spec.backup.logging.LogBackAccessRef

Tipo: string

Referencia a un ConfigMap que contiene un archivo logback-access.xml personalizado para configurar los registros de copia de seguridad de Ops Manager.

La clave en el ConfigMap debe coincidir exactamente con el nombre de logback-access.xml para asegurar que reemplace el archivo por defecto en los Pods de Ops Manager.

Para obtener más información, consulte Configurar los registros de Ops Manager con el CRD.

spec.backup.logging.LogBackRef

Tipo: string

Referencia a un ConfigMap que contiene un archivo personalizado logback.xml. Este archivo configura el comportamiento general de registro para las copias de seguridad de Ops Manager, incluyendo las políticas de rotación de registros, los niveles de registros y otros parámetros de registro.

La clave en el ConfigMap debe coincidir exactamente con el nombre del logback-access.xml para asegurarse de que reemplace el archivo por defecto en los Pods de Ops Manager. Para obtener más información, consulta Configura los registros de Ops Manager con el CRD.

spec.externalApplicationDatabaseRef

tipo: colección

Hace referencia a un recurso de MongoDB para usarlo como base de datos de la aplicación de este recurso de Ops Manager, en lugar de la base de datos de la aplicación que administra internamente el operador de Kubernetes. Para obtener más información, consulte Copia de seguridad de la base de datos de la aplicación de Ops Manager.

Cuando especifica esta configuración, el operador de Kubernetes no gestiona una base de datos de la aplicación interna para este recurso y status.applicationDatabase.phase informa de Disabled. Esta fase es la esperada y no es un error. status.opsManager.phase se comporta como lo hace para una base de datos de la aplicación gestionada internamente.

apiVersion: mongodb.com/v1
kind: MongoDBOpsManager
metadata:
name: primary-om
spec:
externalApplicationDatabaseRef:
name: primary-om-db
kind: MongoDB

Si configura tanto este ajuste como spec.applicationDatabase, este ajuste tendrá prioridad y el operador de Kubernetes ignorará spec.applicationDatabase. El operador de Kubernetes también omitirá las validaciones que normalmente realiza contra spec.applicationDatabase.

spec.externalApplicationDatabaseRef.kind

Tipo: string

Obligatorio si configura spec.externalApplicationDatabaseRef.

Tipo de recurso referenciado. El único valor aceptado es MongoDB.

spec.externalApplicationDatabaseRef.name

Tipo: string

Obligatorio si configura spec.externalApplicationDatabaseRef.

Nombre del recurso de MongoDB que se utilizará como base de datos de la aplicación externa. Este recurso debe establecer spec.role en AppDB, como se describe en Especificación de recursos de base de datos de MongoDB, y debe estar en el mismo namespace que el recurso de MongoDB Ops Manager. El operador de Kubernetes no es compatible con las referencias entre namespace.

El nombre debe ser <MongoDBOpsManager-name>-db. Esta convención permite que el recurso de MongoDB Ops Manager y el recurso de MongoDB utilicen el mismo nombre de StatefulSet de base de datos de la aplicación, que el operador de Kubernetes requiere para transferir la propiedad de ese StatefulSet durante la migración.

spec.logging.LogBackAccessRef

Tipo: string

Referencia a un ConfigMap que contiene un archivo logback-access.xml personalizado para configurar los registros de Ops Manager.

La clave en el ConfigMap debe ser exactamente logback-access.xml para asegurarse de que reemplace el archivo por defecto en los Pods de Ops Manager.

Para obtener más información, consulte Configurar los registros de Ops Manager con el CRD.

spec.logging.LogBackRef

Tipo: string

Referencia a un ConfigMap que contiene un archivo logback.xml personalizado. Este archivo configura el comportamiento general de registro para Ops Manager, incluyendo las políticas de rotación de registros, los niveles de registros y otros parámetros de registro.

La clave en el ConfigMap debe ser exactamente logback.xml para asegurarse de que reemplace el archivo por defecto en los Pods de Ops Manager.

Para obtener más información, consulte Configurar los registros de Ops Manager con el CRD.

Nota

Si el tamaño de los archivos que genera el tablero de Ops Manager es mayor que el espacio de almacenamiento disponible en el volumen emptyDir, considere anular el volumen emptyDir con un volumen persistente para evitar bloqueos de pods. Para obtener más información, consulte spec.statefulSet.spec.template.spec.volumes.

spec.opsManagerURL

Tipo: string

opcional. La URL para el recurso Ops Manager en el Operador de Kubernetes, por ejemplo: https://link.to.configured.lb.example.com.

  • Si omites este parámetro, para conectarte a instancias de Ops Manager, el Operador de Kubernetes utiliza la siguiente URL como la por defecto para la instancia de Ops Manager: <om-name>-svc.{namespace}.svc.cluster.local. Este es el FQDN del servicio sin interfaz para Ops Manager.

  • Si especificas este parámetro, esto te permite cambiar esta URL por otra diferente.

Nota

No confunda el spec.opsManagerURL con la URL que se especifica en un ConfigMap para una implementación particular, con el fin de configurar las implementaciones de MongoDB y los agentes de supervisión para la base de datos de la aplicación. El operador de Kubernetes requiere tener el spec.opsManagerURL para conectarse directamente a las instancias de Ops Manager y para configurar las implementaciones de Ops Manager y base de datos de la aplicación. El operador de Kubernetes no utiliza el spec.opsManagerURL para gestionar bases de datos particulares de MongoDB.

Cambia el parámetro spec.opsManagerURL a una URL personalizada en los siguientes casos:

  • Cuando implementa Ops Manager en varios clústeres de Kubernetes y la URL por defecto no es accesible desde el pod que aloja Ops Manager. Por ejemplo, si implementa Ops Manager en otros clústeres de Kubernetes distintos de aquellos en los que implementa el Operador de Kubernetes, el FQDN para el servicio de Ops Manager podría no estar accesible. En este caso, puedes especificar una URL personalizada.

  • Cuando configures el acceso externo a la instancia del Ops Manager en un dominio externo, puedes especificar una URL personalizada. Esto también requiere que el Kubernetes operador y los agentes de supervisión de la base de datos de la aplicación utilicen esta URL personalizada en lugar de la por defecto.

spec.clusterDomain

Tipo: string

Kubernetes asigna a cada Pod un FQDN. El operador de Kubernetes calcula el FQDN para cada Pod utilizando un clusterDomain proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

spec.clusterName

Importante

spec.clusterName está obsoleto

Se debe utilizar spec.clusterDomain en su lugar.

Tipo: string

Kubernetes asigna a cada Pod un FQDN. El operador de Kubernetes calcula el FQDN para cada Pod utilizando un clusterName proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

spec.configuration

tipo: colección

Propiedades de configuración de Ops Manager. Consulta Configuración del Gestor de Operaciones para ver nombres de propiedades y descripciones. Cada propiedad toma un valor de tipo string.

Importante

Si Ops Manager va a gestionar recursos de MongoDB implementados fuera del clúster de Kubernetes en el que está implementado, debes agregar la configuración mms.centralUrl a spec.configuration.

Establece el valor en la URL mediante la cual Ops Manager se expone fuera del clúster de Kubernetes.

Para obtener más información, consulta Gestión de implementaciones externas de MongoDB.

spec.configuration.mms.featureFlag.automation.verifyDownloads

Tipo: string

Cuando se establece en enabled, el MongoDB Agent requiere archivos de firma para todas las implementaciones de MongoDB que gestiona tu Ops Manager instancia.

Cuando actualices el MongoDB Agent con esta opción habilitada, la versión actual del MongoDB Agent requiere archivos de firma del nuevo binario de MongoDB Agent.

Para saber más, consulta Verificar firmas de MongoDB.

spec.configuration.mms.featureFlag.backup.queryable

Tipo: booleano

Establezca en false para desactivar los respaldos consultables.

spec.configuration.mms.featureFlag.backup.wt.queryable

Tipo: booleano

Configura en false para desactivar el respaldo consultable al utilizar WiredTiger.

spec.configuration.mms.mongoDbUsage.defaultUsageType

Tipo: string

El tipo de servidor por defectodel servicio de Kubernetes.

Los valores aceptados son: PRODUCTION_SERVER, TEST_SERVER, DEV_SERVER y RAM_POOL.

spec.jvmParameters

Tipo: arreglo de cadenas

opcional. Parámetros de la JVM pasados a la Aplicación del Ops Manager en el contenedor. Todos los parámetros proporcionados reemplazan los parámetros predeterminados de la JVM para la aplicación Ops Manager.

Este parámetro del operador de Kubernetes es por defecto una lista vacía.

spec:
jvmParameters: ["-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/tmp"]

Importante

Cambiar los valores de Heap de memoria de la JVM bajo tu propio riesgo

El operador de Kubernetes calcula los valores del montón de memoria JVM de la aplicación Ops Manager en función de la memoria del contenedor. Modificar los valores -Xms y -Xmx puede provocar problemas con Ops Manager.

spec.security.certsSecretPrefix

Tipo: string

Texto para anteponer al secreto de Kubernetes que creó y que contiene la clave y el certificado TLS de Ops Manager.

Debes nombrar tu secreto <prefix>-<metadata.name>-cert.

Para aprender a configurar su instancia de Ops Manager para que ejecute sobre HTTPS, consulte Implementar un recurso de Ops Manager.

spec.security.tls.ca

Nombre del Kubernetes ConfigMap que contiene un archivo CA personalizado para Ops Manager.

Importante

spec.security.tls.ca es necesario si utiliza una CA personalizada para firmar sus certificados TLS de Ops Manager.

El Operador de Kubernetes requiere que asignes un nombre al certificado para el recurso Ops Manager mms-ca.crt en el ConfigMap.

Esta AC firma los certificados que:

  • los clientes utilizan para conectarse a la Aplicación Ops Manager, y

  • agentes en la Base de Datos de la Aplicación Pods que se usan para comunicarse con Ops Manager.

Advertencia

Debe concatenar su archivo CA personalizado y toda la cadena de certificados TLS de downloads.mongodb.com para evitar que Ops Manager deje de funcionar si se reinicia la base de datos de la aplicación.

spec.security.tls.enabled

Importante

spec.security.tls.enabled Esta función está obsoleta y se eliminará en una versión futura. Para habilitar TLS, proporcione un valor para la configuración spec.security.certsSecretPrefix.

Encripta las comunicaciones usando certificados TLS entre clientes y Ops Manager.

spec.statefulSet.spec

tipo: colección

Especificación para el StatefulSet que los Controladores de MongoDB para Kubernetes operador crean para Ops Manager.

Para revisar qué campos puede agregar a spec.statefulSet.spec, consulte StatefulSetSpec v1 apps en la documentación de Kubernetes.

spec.statefulSet.spec.template

tipo: colección

Plantilla para los Pods de Kubernetes en el StatefulSet que los controladores MongoDB para Kubernetes **operador** crean para Ops Manager.

Nota

El operador de Kubernetes no valida los campos que usted proporciona en spec.statefulSet.spec.template.

spec.statefulSet.spec.template.metadata

tipo: colección

Metadatos para los Kubernetes Pods en el StatefulSet que los controladores de MongoDB para Kubernetes operador crean para Ops Manager.

Para revisar qué campos puede agregar a spec.statefulSet.spec.template.metadata, consulte la documentación de Kubernetes.

spec.statefulSet.spec.template.spec

tipo: colección

Especificaciones de los Pods de Kubernetes en el StatefulSet que los controladores de MongoDB para el Operador de Kubernetes crean para el Ops Manager.

Para consultar la lista completa de campos que puede agregar a spec.statefulSet.spec.template.spec, consulte la documentación de Kubernetes.

El siguiente ejemplo spec.statefulSet.spec.template.spec define la capacidad mínima y máxima de CPU y memoria para un contenedor Ops Manager que los Controladores MongoDB para el operador de Kubernetes implementan:

Tip

Para obtener más información sobre los requisitos de hardware, software y redes para los hosts que ejecutan los componentes de Ops Manager, consulte Requisitos del sistema de Ops Manager en la Documentación de Ops Manager.

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager
resources:
requests:
cpu: "4"
memory: "16Gi"
limits:
cpu: "8"
memory: "32Gi"
spec.statefulSet.spec.template.spec.containers

tipo: colección

Lista de contenedores que pertenecen a los Kubernetes Pods en el StatefulSet que los Controladores de MongoDB para Kubernetes operador crean para el Ops Manager.

Para modificar las especificaciones del contenedor de Ops Manager, debes proporcionar el nombre exacto del contenedor usando el campo name, como se muestra en el siguiente ejemplo:

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager

Nota

Cuando añades contenedores a spec.statefulSet.spec.template.spec.containers, el Operador de Kubernetes los añade al pod de Kubernetes. Estos contenedores se agregan a los contenedores Ops Manager en el pod.

spec.statefulSet.spec.template.spec.containers.resources.requests.cpu

Tipo: string

Capacidad mínima de CPU que debe estar disponible en un nodo de Kubernetes para host el Ops Manager.

El valor solicitado debe ser menor o igual a spec.statefulSet.spec.template.spec.containers.resources.limits.cpu.

spec.statefulSet.spec.template.spec.containers.resources.limits.cpu

Tipo: string

Capacidad máxima de CPU para el nodo que se creará para alojar el Administrador de operaciones. Si se omite, este valor se establece en spec.statefulSet.spec.template.spec.containers.resources.requests.cpu.

spec.statefulSet.spec.template.spec.containers.resources.requests.memory

Tipo: string

Capacidad mínima de memoria que debe estar disponible en un nodo Kubernetes para alojar el Ops Manager en Kubernetes. Este valor se expresa como un número entero seguido de una unidad de memoria en notación JEDEC.

Ejemplo

Si Ops Manager en Kubernetes requiere 6 gigabytes de memoria, establece este valor en 6Gi.

Nota

MongoDB recomienda establecer este valor en al menos 5Gi.

El valor solicitado debe ser menor o igual a spec.statefulSet.spec.template.spec.containers.resources.limits.memory.

spec.statefulSet.spec.template.spec.containers.resources.limits.memory

Tipo: string

Capacidad máxima de memoria para el nodo que se creará para alojar el Administrador de operaciones. Si se omite, este valor se establece en spec.statefulSet.spec.template.spec.containers.resources.requests.memory.

El Operador de Kubernetes calcula y establece los parámetros para el tamaño del heap de Java en función de la memoria del contenedor.

Advertencia

Limitar este valor a menos de 32 GB

Si establece este parámetro en un valor mayor a 32 GB (32Gi), puede causar problemas con el servicio de copia de seguridad. Los montones excesivos pueden causar resultados impredecibles en Ops Manager.

spec.statefulSet.spec.template.spec.volumes

tipo: colección

Lista de volúmenes que los contenedores pueden montar en el StatefulSet que los Controladores de MongoDB para el Operador de Kubernetes crean para Ops Manager.

Si solicita los registros de una implementación utilizando el tablero de Ops Manager y el tamaño de los archivos temporales es significativamente grande, considere utilizar un Volumen Persistente para el volumen de Kubernetes data en el tablero de Ops Manager StatefulSet.

El volumen de Kubernetes de data utiliza un tipo emptyDir por defecto. Para anularlo y utilizar un volumen persistente, añade la siguiente configuración a tu recurso MongoDBOpsManager:

statefulSet:
spec:
template:
spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: <my-pvc>

Reemplaza <my-pvc> con el nombre de tu Kubernetes PersistentVolumeClaim.

Esta sección describe la configuración opcional relacionada con la conectividad externa en Ops Manager. Para la configuración opcional de conectividad externa específica de su implementación multiclúster de Ops Manager, consulte Configuración multiclúster.

spec.externalConnectivity

tipo: colección

Objeto de configuración que habilita la conectividad externa a Ops Manager. Si se proporciona, el operador de Kubernetes crea un servicio de Kubernetes que permite que el tráfico proveniente del exterior del clúster de Kubernetes llegue a la aplicación Ops Manager.

Si no se proporciona, el operador de Kubernetes no crea un servicio de Kubernetes. Debe crear uno manualmente o utilizar una solución de terceros que le permita enrutar el tráfico externo a la aplicación Ops Manager en su clúster de Kubernetes.

spec.externalConnectivity.type

Tipo: string

El servicio de Kubernetes ServiceType que expone Ops Manager fuera de Kubernetes.

Obligatorio si spec.externalConnectivity.type está presente.

Los valores aceptados son: LoadBalancer y NodePort. Se recomienda LoadBalancer si su proveedor de nube lo admite. Utiliza NodePort para implementaciones locales.

spec.externalConnectivity.port

Tipo: entero

Valor que indica qué puerto que un servicio de Kubernetes expone debe usar la Aplicación Ops Manager para el tráfico externo.

  • Si spec.externalConnectivity.type es NodePort:

    • El servicio Kubernetes expone la aplicación Ops Manager al tráfico externo a través de este puerto.

    • Si no proporcionas un valor de spec.externalConnectivity.port, el servicio de Kubernetes enruta el tráfico a la aplicación Ops Manager desde un puerto disponible seleccionado al azar del siguiente rango por defecto: 30000-32767.

      Nota

      Debes configurar el firewall de tu red para permitir el tráfico a través de este puerto.

  • Si spec.externalConnectivity.type es LoadBalancer:

    • El recurso de balanceador de carga que crea el proveedor de nube expone la aplicación de Ops Manager a través de este puerto.

    • Si no proporciona un valor de spec.externalConnectivity.port, el servicio de Kubernetes expone la Ops Manager aplicación al tráfico externo a través del puerto HTTP (8080) o HTTPS (8443) predeterminado.

spec.externalConnectivity.loadBalancerIP

Tipo: string

La dirección IP que el servicio de Kubernetes LoadBalancer utiliza cuando el Operador de Kubernetes lo crea.

Esta configuración solo se puede usar si su proveedor de nube la admite y spec.externalConnectivity.type es LoadBalancer. Para obtener más información sobre el tipo LoadBalancer, consulte la documentación de Kubernetes.

spec.externalConnectivity.externalTrafficPolicy

Tipo: string

Política de enrutamiento para el tráfico externo al servicio Kubernetes de Ops Manager. Este servicio dirige el tráfico externo a endpoints locales del nodo o de todo el clúster según el valor de esta configuración.

Los valores aceptados son: Cluster y Local. Para saber cuáles de los valores cumplen tus requisitos, consulta IPs de origen en Kubernetes en la documentación de Kubernetes.

Nota

Si selecciona Cluster, el Source-IP de sus clientes se pierden durante los saltos de red que ocurren en el límite de la red de Kubernetes.

spec.externalConnectivity.annotations

tipo: colección

Pares clave-valor que le permiten proporcionar configuraciones específicas del proveedor de nube.

Para obtener más información sobre anotaciones y Soporte TLS en AWS, consulta la documentación de Kubernetes.

Esta sección describe la configuración opcional relacionada con las copias de seguridad en Ops Manager. Para la configuración opcional de copias de seguridad específica de su implementación de varios clústeres de Ops Manager, consulta Configuración multi-clúster.

spec.backup.assignmentLabels

Tipo: arreglo de cadenas

Una lista de etiquetas de asignación para los procesos del daemon de copias de seguridad Service. Utiliza etiquetas de asignación para identificar que procesos específicos del daemon de copias de seguridad están asociados con Proyectos particulares. Si configura etiquetas de asignación usando el Operador de Kubernetes, los valores que se establecen en el archivo de configuración de Kubernetes para las etiquetas de asignación anulan los valores definidos en la Interfaz de usuario de Ops Manager. Las etiquetas de asignación que no configures usando el Operador de Kubernetes seguirán utilizando los valores configurados en la interfaz de usuario de Ops Manager.

spec.backup.enabled

Tipo: booleano

Indicador que habilita las copias de seguridad para su recurso de Ops Manager. Cuando se establece en false, la copia de seguridad está deshabilitada.

El valor por defecto es true.

spec.backup.encryption

Tipo: Objeto

Un objeto que contiene la configuración de cifrado de copias de seguridad.

spec.backup.encryption.kmip

Tipo: Objeto

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

Nota

Si estableces este parámetro, la clave API vinculada con el valor de spec.credentials debe tener el rol de Global Owner.

spec.backup.encryption.kmip.server

Tipo: Objeto

Objeto que contiene la configuración del servidor de cifrado de copia de seguridad KMIP.

spec.backup.encryption.kmip.server.ca

Tipo: string

Etiqueta legible para humanos que identifica el ConfigMap que contiene una entrada para el certificado CA (ca.pem) que se utilizará para la autenticación KMIP.

spec.backup.encryption.kmip.server.url

Tipo: string

URL del servidor KMIP que utiliza el formato hostname.port (por ejemplo, 192.168.1.3:5696 o my-kmip-server.mycorp.com:5696).

spec.backup.headDB

tipo: colección

Configuración para la base de datos principal. El Operador de Kubernetes crea una Solicitud de volumen persistente con la configuración especificada.

Escalar
Tipo de dato
Descripción

labelSelector

string

Etiqueta utilizada para vincular volúmenes montados a directorios.

storage

string

Tamaño mínimo de Volumen Persistente que debe montarse. Este valor se expresa como un número entero seguido de una unidad de almacenamiento en notación JEDEC.

El valor por defecto es 30Gi.

Para obtener más información, consulte Requisitos de hardware del daemon de copia de seguridad.

Por ejemplo, si la base de datos principal requiere 60 gigabytes de espacio de almacenamiento, establezca este valor en 60Gi.

storageClass

string

Tipo de almacenamiento especificado en un Reclamo 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 StorageClass reclaimPolicy en Retain. Esto garantiza que los datos se conserven cuando se elimine una solicitud de volumen persistente.

spec.backup.jvmParameters

Tipo: arreglo de cadenas

Opcional. Parámetros JVM pasados al servicio de copias de seguridad del Ops Manager en el contenedor.

Este parámetro del operador de Kubernetes es por defecto una lista vacía.

spec:
backup:
jvmParameters: ["-XX:+UseStringCache"]

Advertencia

Cambiar los valores de Heap de memoria de la JVM bajo tu propio riesgo

El operador de Kubernetes calcula los valores del montón de memoria JVM del servicio de copia de seguridad en función de la memoria del contenedor. Modificar los valores -Xms y -Xmx puede provocar problemas con Ops Manager.

spec.backup.members

Tipo: entero

Opcional. Número de servicios de daemon de copias de seguridad para implementar en Kubernetes. Si no se especifica, el valor por defecto es 1. Para garantizar la alta disponibilidad de su servicio de copia de seguridad, implemente múltiples demonios de copias de seguridad en Ops Manager.

spec.backup.opLogStores

tipo: colección

Obligatorio si habilitas la copia de seguridad. Array de almacenes oplog utilizados para copias de seguridad. Cada elemento en el arreglo hace referencia a un recurso de base de datos MongoDB desplegado en el clúster de Kubernetes por el operador de Kubernetes.

spec.backup.opLogStores.assignmentLabels

Tipo: arreglo de cadenas

Una lista de etiquetas de tareas para la almacenar oplog. Utiliza etiquetas de asignación para identificar que almacenes específicos de oplog están asociados a proyectos particulares. Si configura etiquetas de asignación usando el Operador de Kubernetes, los valores que se establecen en el archivo de configuración de Kubernetes para las etiquetas de asignación anulan los valores definidos en la Interfaz de usuario de Ops Manager. Las etiquetas de asignación que no configures usando el Operador de Kubernetes seguirán utilizando los valores configurados en la interfaz de usuario de Ops Manager.

spec.backup.opLogStores.name

Tipo: string

Obligatorio si habilitas la Copia de seguridad. Nombre del almacén de oplog.

Importante

Una vez especificado, no edite el nombre del almacenar de oplog.

spec.backup.opLogStores.mongodbResourceRef.name

Tipo: string

Obligatorio si habilitas la Copia de seguridad. Nombre del recurso MongoDB o del recurso MongoDBMultiCluster que se crea para almacenar las secciones de el oplog. Debe implementar este recurso en el mismo namespace que el recurso Ops Manager.

La base de datos Oplog solo admite el mecanismo de autenticación SCRAM. No puedes habilitar otros mecanismos de autenticación.

Si activa la autenticación SCRAM en la base de datos oplog, debe:

  • Cree un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos oplog.

  • Especifica el name del usuario en la definición de recurso de Ops Manager.

Si un recurso de base de datos MongoDB con este nombre no existe, el recurso backup entra en el estado Pending. El operador de Kubernetes reintenta cada 10 segundos hasta que se cree un recurso de base de datos MongoDB con este nombre.

Nota

El operador de Kubernetes comienza a conciliar el recurso Ops Manager automáticamente cuando se realizan cambios de seguridad en los recursos de base de datos referenciados en esta configuración. El operador de Kubernetes actualiza los indicadores mongoUri y ssl en la configuración del Ops Manager según tus cambios.

spec.backup.opLogStores.mongodbUserRef.name

Tipo: string

Necesario si la autenticación SCRAM está habilitada en la base de datos del almacén oplog. Nombre del recurso de usuario de MongoDB utilizado para conectarse a la base de datos del almacén oplog. Implementa este recurso de usuario en el mismo namespace que el recurso de Ops Manager y con todos los siguientes roles:

spec.backup.blockStores

tipo: colección

Se requiere si está habilitando la copia de seguridad mediante un almacenamiento en bloques. Arreglo de blockstores utilizados para Copia de seguridad. Cada elemento en el arreglo hace referencia a un recurso de base de datos MongoDB desplegado en el clúster de Kubernetes por el operador de Kubernetes.

spec.backup.blockStores.assignmentLabels

Tipo: arreglo de cadenas

Una lista de etiquetas de asignación para el almacenamiento en bloques. Utiliza etiquetas de asignación para identificar que tiendas de bloques específicos están asociados con proyectos particulares. Si configura etiquetas de asignación usando el Operador de Kubernetes, los valores que se establecen en el archivo de configuración de Kubernetes para las etiquetas de asignación anulan los valores definidos en la Interfaz de usuario de Ops Manager. Las etiquetas de asignación que no configures usando el Operador de Kubernetes seguirán utilizando los valores configurados en la interfaz de usuario de Ops Manager.

spec.backup.blockStores.name

Tipo: string

Se requiere si activa la copia de seguridad utilizando un almacenamiento en bloques. Nombre del almacenamiento en bloques.

Importante

Una vez especificado, no edites el nombre del almacenamiento en bloques.

spec.backup.blockStores.mongodbResourceRef.name

Tipo: string

Obligatorio si se habilita la copia de seguridad utilizando un almacenamiento en bloques. Nombre del recurso de base de datos MongoDB creado para el almacenamiento en bloques. Debe implementar este recurso de base de datos en el mismo namespace que el recurso de Ops Manager.

La base de datos de almacenamiento en bloques solo admite el mecanismo de autenticación SCRAM. No puedes habilitar otros mecanismos de autenticación.

Si habilita la autenticación SCRAM en la base de datos de almacenamiento en bloques, debe:

  • Crea un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos de almacenamiento en bloques.

  • Especifica el name del usuario en la definición de recurso de Ops Manager.

Si un recurso de base de datos MongoDB con este nombre no existe, el recurso backup entra en el estado Pending. El operador de Kubernetes reintenta cada 10 segundos hasta que se cree un recurso de base de datos MongoDB con este nombre.

Nota

El operador de Kubernetes comienza a conciliar el recurso Ops Manager automáticamente cuando se realizan cambios de seguridad en los recursos de base de datos referenciados en esta configuración. El operador de Kubernetes actualiza los indicadores mongoUri y ssl en la configuración del Ops Manager según tus cambios.

spec.backup.blockStores.mongodbUserRef.name

Tipo: string

Requerido si la autenticación SCRAM está habilitada en la base de datos de almacenamiento en bloques. Nombre del recurso de usuario de MongoDB utilizado para conectarse a la base de datos de almacenamiento en bloques. Implementa este recurso de usuario en el mismo namespace que el recurso de Ops Manager y con todos los siguientes roles:

spec.backup.queryableBackupSecretRef.name

Tipo: string

Nombre del secreto que contiene el archivo queryable.pem de Ops Manager, que se utilizará para acceder y query copias de seguridad según los requisitos de TLS de la implementación. El archivo PEM contiene un certificado de llave pública y su llave privada asociada, necesarios para acceder y ejecutar queries en snapshots de copias de seguridad en Ops Manager. Para consultar las copias de seguridad, especifica el valor para este parámetro. Si no se establece, las copias de seguridad no se ven afectadas, pero no se puede consultar.

spec.backup.statefulSet.spec

tipo: colección

Especificación para el StatefulSet que los controladores MongoDB para Kubernetes Operator crean para el servicio de daemon de copias de seguridad.

Para revisar qué campos puede agregar a spec.backup.statefulSet.spec, consulte StatefulSetSpec v1 apps en la documentación de Kubernetes.

spec.backup.statefulSet.spec.template

tipo: colección

Plantilla for the Kubernetes Pods in the StatefulSet that the MongoDB Controllers for Kubernetes operador creates for the servicio de daemon de copias de seguridad.

Nota

El operador de Kubernetes no valida los campos que usted proporciona en spec.backup.statefulSet.spec.template.

spec.backup.statefulSet.spec.template.metadata

tipo: colección

Metadata para los pods de Kubernetes en el StatefulSet que los controladores de MongoDB para Kubernetes Operator crean para el servicio de daemon de copias de seguridad.

Para revisar qué campos puede agregar a spec.backup.statefulSet.spec.template.metadata, consulte la documentación de Kubernetes.

spec.backup.statefulSet.spec.template.spec

tipo: colección

Especificaciones de los Pods de Kubernetes en el Set Statefull que los controladores de MongoDB para Kubernetes operador crean para el servicio de daemon de copias de seguridad.

Para consultar la lista completa de campos que puede agregar a spec.backup.statefulSet.spec.template.spec, consulte la documentación de Kubernetes.

El siguiente ejemplo spec.backup.statefulSet.spec.template.spec define la capacidad mínima y máxima de CPU y memoria para un contenedor daemon de copias de seguridad que los MongoDB Controllers for Kubernetes operador implementan:

Tip

Para obtener más información sobre los requisitos de hardware, software y redes para los hosts que ejecutan los componentes de Ops Manager, consulte Requisitos del sistema de Ops Manager en la Documentación de Ops Manager.

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon
resources:
requests:
cpu: "4"
memory: "8Gi"
limits:
cpu: "8"
memory: "16Gi"
spec.backup.statefulSet.spec.template.spec.containers

tipo: colección

Lista de contenedores que pertenecen a los Kubernetes Pods en el StatefulSet que crean los controladores de MongoDB para el operador Kubernetes para el daemon de copias de seguridad.

Para modificar las especificaciones del servicio de daemon de copias de seguridad del contenedor, debes proporcionar el nombre exacto del contenedor utilizando el campo name, como se muestra en el siguiente ejemplo:

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon

Nota

Cuando añades contenedores a spec.backup.statefulSet.spec.template.spec.containers, el Kubernetes operador los agrega al pod de Kubernetes. Estos contenedores se añaden a los contenedores de Servicio del Daemon de Copias de Seguridad en el pod.

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu

Tipo: string

Capacidad mínima de CPU que debe estar disponible en un nodo de Kubernetes para alojar el servicio de daemon de copias de seguridad.

El valor solicitado debe ser menor o igual a spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu

Tipo: string

Capacidad máxima de CPU para el nodo que se creará para alojar el servicio de demonio de copia de seguridad. Si se omite, este valor se establece en spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu.

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory

Tipo: string

Capacidad mínima de memoria que debe estar disponible en un nodo de Kubernetes para alojar el servicio de daemon de copias de seguridad en Kubernetes. Este valor se expresa como un número entero seguido de una unidad de memoria en notación JEDEC.

Nota

Establece este valor en al menos 4.5Gi. Valores menores a 4.5Gi pueden resultar en un error.

El valor solicitado debe ser menor o igual a spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory

Tipo: string

Capacidad máxima de memoria para el nodo que se creará para alojar el servicio de demonio de copia de seguridad. Si se omite, este valor se establece en spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory.

El Operador de Kubernetes calcula y establece los parámetros para el tamaño del heap de Java en función de la memoria del contenedor.

Advertencia

Limitar este valor a menos de 32 GB

Si establece este parámetro en un valor mayor a 32 GB (32Gi), puede causar problemas con el servicio de copia de seguridad. Los montones excesivos pueden causar resultados impredecibles en Ops Manager.

Puede configurar Ops Manager para que utilice S3 para almacenar registros de operaciones e instantáneas de copia de seguridad, y proteger las conexiones a S3 con TLS utilizando claves emitidas por una CA personalizada.

Para configurar claves CA personalizadas, utilice el ConfigMap con el que configuró TLS para su base de datos de aplicación, tal como se describe en la pestaña TLS-Encrypted Connection (HTTPS) de Implementar un recurso de Ops Manager. Establezca spec.applicationDatabase.security.tls.ca en este ConfigMap.

Puede utilizar TLS tanto para S3 como para la base de datos de su aplicación, o solo para S3.

  • Para usar TLS para ambos, obtenga certificados para ambos propósitos del mismo ca-pem al que se hace referencia en el ConfigMap.

  • Para usar TLS solo para S3, no defina spec.security.applicationDatabase.certsSecretPrefix en su ConfigMap.

spec.backup.s3OpLogStores.assignmentLabels

Tipo: arreglo de cadenas

Lista de etiquetas de asignación para los almacenes de oplog S3. Utilice las etiquetas de asignación para identificar que los almacenes de oplog S3 específicos están asociados a proyectos concretos. Si configura las etiquetas de asignación mediante el operador de Kubernetes, los valores que establezca en el archivo de configuración de Kubernetes para las etiquetas de asignación anularán los valores definidos en la interfaz de usuario de Ops Manager. Las etiquetas de asignación que no configure mediante el operador de Kubernetes seguirán utilizando los valores establecidos en la interfaz de usuario de Ops Manager.

spec.backup.s3OpLogStores.customCertificate

Tipo: booleano

Obsoleto. Utiliza spec.backup.s3OpLogStores.customCertificateSecretRefs en su lugar.

Indicador que especifica si se utilizan certificados AppDB (appdb-ca) como certificado TLS personalizado para el almacén de oplog S3. El valor predeterminado es False.

spec.backup.s3OpLogStores.customCertificateSecretRefs

Tipo: arreglo de objetos

Lista de certificados personalizados para su almacén de oplog S3 mediante secretos de Kubernetes.El certificado x.509 codificado en base64 debe estar presente en un secreto de Kubernetes con una clave y debe ser analizable por Java CertifcateFactory. No puede especificar varios certificados en una cadena dentro de un mismo secreto. Si especifica varios certificados en una cadena dentro de un mismo secreto, Kubernetes Operator solo utilizará el primer certificado de la cadena. Si también proporciona la configuración customCertificate, Kubernetes Operator utilizará spec.applicationDatabase.security.tls.ca como certificado personalizado para las copias de seguridad.

Cada entrada de la lista especifica el name y el key. Si especifica múltiples secretos, Kubernetes operador utiliza todos los certificados de los secretos especificados.

Si no proporcionas esta configuración, Ops Manager usa el JVM almacén de confianza por defecto utilizado por Ops Manager.

spec.backup.s3OpLogStores.customCertificateSecretRefs.name

Tipo: string

Requerido para utilizar certificados personalizados para tu S3 tienda de Oplog. Secreto de Kubernetes secret que contiene el certificado personalizado.

spec.configuration.mms.mongoDbUsage.defaultUsageType

Tipo: string

El tipo de servidor por defectodel servicio de Kubernetes.

spec.backup.s3OpLogStores.customCertificateSecretRefs.key

Tipo: string

Se requiere el uso de certificados personalizados para el almacén de oplog S3. Archivo que representa la clave en el secreto que contiene el certificado x.509 codificado en base64. Si no especifica esta configuración, el operador de Kubernetes no podrá utilizar el certificado personalizado para las copias de seguridad del almacén de oplog S3.

spec.backup.s3OpLogStores.irsaEnabled

Tipo: booleano

Indicador que permite usar roles de AWS IAM para cuentas de servicio en AWS EKS para configurar un almacén de oplog S3. El valor predeterminado es False. Si no usa AWS EKS, este indicador no tiene efecto. Cuando se establece en False, se desactiva el uso de roles de AWS IAM para cuentas de servicio en EKS para configurar un almacén de oplog S3. Para obtener más información, consulte Roles de IAM para cuentas de servicio en EKS.

spec.backup.s3OpLogStores.name

Tipo: string

Se requiere almacenar el oplog utilizando un almacén S3. Nombre del almacén de oplog S3.

spec.backup.s3OpLogStores.mongodbResourceRef.name

Tipo: string

Nombre del recurso de base de datos MongoDB que se crea para almacenar metadatos para el almacén de oplog S3. Este recurso de base de datos debe implementarse en el mismo espacio de nombres que el recurso de Ops Manager.

Nota

Omita esta configuración para usar la base de datos de la aplicación para almacenar metadatos para el almacén oplog S3.

Si omite esta configuración, también debe omitir la configuración de spec.backup.s3OpLogStores.mongodbUserRef.name. El operador de Kubernetes gestiona la autenticación de usuarios de SCRAM internamente.

Si habilitas la autenticación SCRAM en esta base de datos, debes:

  • Crea un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos.

  • Especifica el name del usuario en la definición de recurso de Ops Manager.

spec.backup.s3OpLogStores.mongodbUserRef.name

Tipo: string

Obligatorio si creó un recurso de base de datos MongoDB para almacenar los metadatos del oplog S3 y SCRAM está habilitado en esta base de datos. Nombre del recurso de usuario de MongoDB utilizado para conectarse a la base de datos de metadatos del almacén de oplog S3. Implemente este recurso de usuario en el mismo espacio de nombres que el recurso de Ops Manager y con todos los siguientes roles:

Importante

Una vez especificado, no edite el nombre del nombre de usuario del almacén de registros de operaciones de metadatos S3.

spec.backup.s3OpLogStores.s3SecretRef.name

Tipo: string

Obligatorio para guardar el oplog utilizando un almacén S3 si spec.backup.s3OpLogStores.irsaEnabled no está configurado en true.

Nombre del secreto que contiene los campos accessKey y secretKey. El servicio de demonio de copia de seguridad utiliza los valores de estos campos como credenciales para acceder a su bucket compatible con AWS S3 o S3.Para configurar el almacén de oplog S3, debe especificar ambas claves en el secreto.

Si configuras spec.backup.s3OpLogStores.irsaEnabled como true, no necesitas configurar s3SecretRef, porque las credenciales de AWS S3 se montan como variables de entorno del pod.

spec.backup.s3OpLogStores.pathStyleAccessEnabled

Tipo: booleano

Indica el estilo de la URL del endpoint del bucket.

Valor
Descripción
Ejemplo

true

URL con estilo de ruta

s3.amazonaws.com/<bucket>

false

URL con estilo de host virtual

<bucket>.s3.amazonaws.com

Para aprender más sobre anotaciones y el soporte de TLS en AWS, consulte la documentación de Kubernetes.

El valor por defecto es true.

spec.backup.s3OpLogStores.s3BucketEndpoint

Tipo: string

Es necesario almacenar el oplog utilizando un almacén S3. URL del bucket AWS S3 o del bucket compatible con S3 que aloja el almacén de oplog.

Nota

Si su punto final no incluye una región en su URL, especifique el campo s3RegionOverride.

spec.backup.s3OpLogStores.s3BucketName

Tipo: string

Se requiere almacenar el oplog utilizando un almacén S3. Nombre del bucket de AWS S3 o del bucket compatible con S3 que aloja el almacén de oplog.

spec.backup.s3OpLogStores.s3RegionOverride

Tipo: string

Región donde reside su bucket compatible con S3. Use este campo solo si el s3BucketEndpoint de su almacén de oplog S3 no admite la definición de región. La definición de región se produce cuando su punto final no incluye una región en su URL.

No utilice este campo con buckets AWS S3. Para obtener más información, consulte la configuración de Blockstore S3.

spec.backup.s3Stores.assignmentLabels

Tipo: arreglo de cadenas

Lista de etiquetas de asignación para los buckets compatibles con S3 o S3 dondese almacenan las instantáneas de copia de seguridad de la base de datos. Utilice las etiquetas de asignación para identificar que los almacenes S3 específicos están asociados a proyectos particulares. Si configura las etiquetas de asignación mediante el operador de Kubernetes, los valores que establezca en el archivo de configuración de Kubernetes para las etiquetas de asignación anularán los valores definidos en la interfaz de usuario de Ops Manager. Las etiquetas de asignación que no configure mediante el operador de Kubernetes seguirán utilizando los valores establecidos en la interfaz de usuario de Ops Manager.

spec.backup.s3Stores.customCertificate

Tipo: booleano

Obsoleto. Utiliza spec.backup.s3Stores.customCertificateSecretRefs en su lugar.

Indicador que especifica si se utilizan los certificados de la base de datos de la aplicación (appdb-ca) como certificado TLS personalizado para las copias de seguridad S3. El valor predeterminado es False.

spec.backup.s3Stores.customCertificateSecretRefs

Tipo: arreglo de objetos

Lista de certificados personalizados para su almacén de instantáneas S3 mediante secretos de Kubernetes.El certificado x.509 codificado en base64 debe estar presente en un secreto de Kubernetes con una clave y debe ser analizable por Java CertifcateFactory. No puede especificar varios certificados en una cadena dentro de un mismo secreto. Si especifica varios certificados en una cadena dentro de un mismo secreto, Kubernetes Operator solo utilizará el primer certificado de la cadena. Si también proporciona la configuración spec.backup.s3Stores.customCertificate, Kubernetes Operator utilizará spec.applicationDatabase.security.tls.ca como certificado personalizado para las copias de seguridad.

Cada entrada en la lista especifica el name y el key. Si se especifican varios secretos, el Operador de Kubernetes utiliza todos los secretos especificados.

Si no proporciona esta configuración, el Kubernetes operador utiliza el JVM Trust Store por defecto usado por Ops Manager para copias de seguridad.

spec.backup.s3Stores.customCertificateSecretRefs.name

Tipo: string

Requerido para utilizar certificados personalizados para tu S3 tienda de Oplog. Secreto de Kubernetes secret que contiene el certificado personalizado.

spec.backup.s3Stores.customCertificateSecretRefs.key

Tipo: string

Es necesario usar certificados personalizados para el almacén de oplog S3. El archivo representa la clave en el secreto que contiene el certificado x.509 codificado en base64. Si no especifica esta configuración, Kubernetes Operator no podrá usar el certificado personalizado para el almacén de instantáneas S3 y utilizará el almacén de confianza predeterminado que usa Ops Manager.

spec.backup.s3Stores.irsaEnabled

Tipo: booleano

Indicador que permite usar roles de AWS IAM para cuentas de servicio en AWS EKS para configurar un almacén de instantáneas S3. El valor predeterminado es False. Si no usa AWS EKS, este indicador no tiene efecto. Cuando se establece en False, se desactiva el uso de roles de AWS IAM para cuentas de servicio en EKS para configurar un almacén de instantáneas S3. Para obtener más información, consulte Roles de IAM para cuentas de servicio en EKS.

spec.backup.s3Stores.name

Tipo: string

Se requiere almacenar el oplog utilizando un almacén S3. Nombre del almacén de instantáneas S3.

Importante

Una vez especificado, no modifique el nombre del almacén de instantáneas S3. Es probable que este cambio falle si las copias de seguridad utilizan el nombre anterior. Las consecuencias de un cambio exitoso son impredecibles.

spec.backup.s3Stores.mongodbResourceRef.name

Tipo: string

Nombre del recurso MongoDB o MongoDBMultiCluster que cree para almacenar metadatos para el almacén de instantáneas S3. Debe implementar este recurso de base de datos en el mismo espacio de nombres que el recurso de Ops Manager.

Nota

Omita esta configuración para usar la base de datos de la aplicación para almacenar metadatos para el almacén de instantáneas S3.

Si omite esta configuración, también debe omitir la configuración de spec.backup.s3Stores.mongodbUserRef.name. El operador de Kubernetes gestiona la autenticación de usuarios de SCRAM internamente.

Si habilitas la autenticación SCRAM en esta base de datos, debes:

  • Crea un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos.

  • Especifica el name del usuario en la definición de recurso de Ops Manager.

Importante

Una vez especificado, no modifique el nombre del almacén de instantáneas S3. Es probable que este cambio falle si las copias de seguridad utilizan el nombre anterior. Las consecuencias de un cambio exitoso son impredecibles.

Si un recurso de base de datos MongoDB con este nombre no existe, el recurso backup entra en el estado Pending. El operador de Kubernetes reintenta cada 10 segundos hasta que se cree un recurso de base de datos MongoDB con este nombre.

Nota

El operador de Kubernetes comienza a conciliar el recurso Ops Manager automáticamente cuando se realizan cambios de seguridad en los recursos de base de datos referenciados en esta configuración. El operador de Kubernetes actualiza los indicadores mongoUri y ssl en la configuración del Ops Manager según tus cambios.

spec.backup.s3Stores.mongodbUserRef.name

Tipo: string

Obligatorio si creó un recurso de base de datos MongoDB para almacenar los metadatos de la instantánea |s3| y SCRAM está habilitado en esta base de datos. Nombre del recurso de usuario de MongoDB utilizado para conectarse a la base de datos de metadatos del almacén de instantáneas S3. Implemente este recurso de usuario en el mismo espacio de nombres que el recurso de Ops Manager y con todos los siguientes roles:

Importante

Una vez especificado, no edite el nombre del nombre de usuario del almacén de instantáneas de metadatos S3.

spec.backup.s3Stores.s3SecretRef.name

Tipo: string

Requerido si habilitas la copia de seguridad utilizando un almacén S3 y no estableces spec.backup.s3Stores.irsaEnabled en true.

Nombre del secreto que contiene los campos accessKey y secretKey. El servicio de demonio de copia de seguridad utiliza los valores de estos campos como credenciales para acceder a su bucket compatible con AWS S3 o S3. El almacén de instantáneas S3 no se puede configurar si el secreto no incluye alguna de estas claves.

Si configuras spec.backup.s3Stores.irsaEnabled como true, no necesitas configurar s3SecretRef, porque las credenciales de AWS S3 se montan como variables de entorno del pod.

spec.backup.s3Stores.objectLockEnabled

Tipo: booleano

Especifica si el bucket compatible con AWS S3 o S3que respalda este almacén de instantáneas tiene habilitado el bloqueo de objetos. Establezca este campo en true para habilitar las copias de seguridad inmutables para el almacén.

Este campo solo es compatible con MongoDB Ops Manager versión 8.0.19 o posterior. Para obtener información sobre cómo configurar copias de seguridad inmutables en Ops Manager, consulte Establecer copia de seguridad inmutable.

El valor por defecto es false.

spec.backup.s3Stores.pathStyleAccessEnabled

Tipo: booleano

Indica el estilo de la URL del endpoint del bucket.

Valor
Descripción
Ejemplo

true

URL con estilo de ruta

s3.amazonaws.com/<bucket>

false

URL con estilo de host virtual

<bucket>.s3.amazonaws.com

El valor por defecto es true.

spec.backup.s3Stores.s3BucketEndpoint

Tipo: string

Obligatorio si habilita la copia de seguridad mediante un almacén S3. URL del bucket AWS S3 o del bucket compatible con S3 que aloja el almacén de instantáneas.

Nota

Si su punto final no incluye una región en su URL, especifique el campo s3RegionOverride.

spec.backup.s3Stores.s3BucketName

Tipo: string

Obligatorio si habilita la copia de seguridad mediante un almacén S3. Nombre del bucket de AWS S3 o del bucket compatible con S3 que aloja el almacén de instantáneas.

spec.backup.s3Stores.s3RegionOverride

Tipo: string

Región donde reside su bucket compatible con S3. Use este campo solo si el s3BucketEndpoint de su almacén S3 no admite la definición de región. La definición de región se produce cuando su punto final no incluye una región en su URL.

No utilice este campo con buckets AWS S3. Para obtener más información, consulte la configuración de Blockstore S3.

Esta sección describe la configuración que debe utilizar además de la configuración obligatoria de Ops Manager para configurar la base de datos de su aplicación Ops Manager.

Nota

Estos ajustes solo son necesarios para una base de datos de aplicación gestionada internamente por el operador de Kubernetes. Si configura spec.externalApplicationDatabaseRef, puede omitir spec.applicationDatabase y sus ajustes por completo. Debe configurar uno de los dos.

spec.applicationDatabase.version

Tipo: string

Obligatorio. Versión de MongoDB instalada en la base de datos de la aplicación Ops Manager. Debe especificar una versión compatible de MongoDB empresarial según la etiqueta del registro de contenedores. Por ejemplo, 8.0.0-ubi8. A partir de la versión 1.20 del operador de Kubernetes, las etiquetas ya no terminan en -ent.

Importante

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

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

Nota

Si actualiza este valor a una versión posterior de MongoDB para la base de datos de la aplicación, la compatibilidad de características entre versiones permanece en la versión de MongoDB desde la que está actualizando, para darle la opción de degradar si es necesario. Si quieres que la compatibilidad de características entre versiones coincida con la nueva versión de MongoDB, debes establecer manualmente el parámetro featureCompatibilityVersion bajo spec.applicationDatabase.

Esta sección describe los ajustes opcionales relacionados con la base de datos de la aplicación de Ops Manager. Para configuraciones opcionales de bases de datos de aplicaciones específicas de su implementación multiclúster de Ops Manager, consulte Configuraciones multiclúster.

spec.applicationDatabase

tipo: colección

Definición del recurso de base de datos de la aplicación de Ops Manager.

La configuración que se muestra a continuación de la especificación del set de réplicas es opcional.

spec.applicationDatabase.additionalMongodConfig

tipo: colección

Opciones de configuración adicionales con las que desea iniciar los procesos de la base de datos de la aplicación MongoDB. Esta configuración utiliza la misma estructura que el archivo de configuración mongod y acepta las mismas opciones que spec.additionalMongodConfig para el recurso MongoDB.

spec.applicationDatabase.agent.logLevel

Tipo: string

por defecto: INFO

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.applicationDatabase.agent.<component>.logRotate

Tipo: Objeto

Reemplaza component con uno de los siguientes valores:

  • mongod

  • monitoringAgent

Objeto de configuración de MongoDB para rotar los registros de MongoDB de un proceso. Para utilizar la configuración de agent.<component>.logRotate, debes establecer systemLog.destination en file porque no puedes utilizar la configuración de agent.<component>.logRotate si estás escribiendo registros en el sistema syslog del host.

Nota

Si el tamaño de los archivos que genera el tablero de Ops Manager es mayor que el espacio de almacenamiento disponible en el volumen emptyDir, considere anular el volumen emptyDir con un volumen persistente para evitar bloqueos de pods. Para obtener más información, consulte spec.statefulSet.spec.template.spec.volumes.

spec.applicationDatabase.agent.mongod.logRotate.numTotal

Tipo: entero

Por defecto: 0

Número total de entradas de registro que Ops Manager conserva. Si no cambia la configuración por defecto, Ops Manager basará la rotación en las otras configuraciones de agent.<compenet>.logRotate.

spec.applicationDatabase.agent.mongod.logRotate.numUncompressed

Tipo: entero

Por defecto: 5

Número máximo de entradas de registro totales que deben dejarse sin comprimir, incluida la entrada de registro actual.

spec.applicationDatabase.agent.mongod.logRotate.percentOfDiskspace

Tipo: número

Por defecto: 0.02

Porcentaje máximo del espacio total de disco que Ops Manager puede usar para almacenar las entradas de registro expresados en formato decimal. Si se supera este límite, Ops Manager elimina archivos de registro comprimidos hasta cumplir con ese límite. Ops Manager borra primero las entradas de registro más antiguas.

spec.applicationDatabase.agent.<component>.logRotate.sizeThresholdMB

Tipo: número

Reemplaza component con uno de los siguientes valores:

  • mongod

  • monitoringAgent

Requerido si se van a rotar los registros. Tamaño máximo en MB para una entrada de registro individual antes de que Ops Manager lo rote. Ops Manager rota el archivo de registro inmediatamente si cumple con el valor dado ya sea en este sizeThresholdMB o en el límite del logRotate.timeThresholdHrs.

spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrs

Tipo: entero

Reemplaza component con uno de los siguientes valores:

  • mongod

  • monitoringAgent

Requerido si se rotan los registros. Duración máxima en horas para una entrada de registro individual antes de la próxima rotación. El tiempo es desde la última rotación. Ops Manager rota la entrada de registro inmediatamente si cumple con el valor establecido en timeThresholdHrs o el logRotate.sizeThresholdM límite.

spec.applicationDatabase.agent.mongod.auditlogRotate

Tipo: Objeto

Objeto de configuración de MongoDB para rotar los registros de auditoría de MongoDB de un proceso.

spec.applicationDatabase.agent.mongod.auditlogRotate.numTotal

Tipo: entero

Por defecto: 0

Número total de entradas de registro de auditoría que Ops Manager retiene. Si no cambias el valor por defecto, Ops Manager basará la rotación en tu otros agent.mongod.auditlogRotate ajustes.

spec.applicationDatabase.agent.mongod.auditlogRotate.numUncompressed

Tipo: entero

Por defecto: 5

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

spec.applicationDatabase.agent.mongod.auditlogRotate.percentOfDiskspace

Tipo: número

Por defecto: 0.02

Porcentaje máximo del espacio total en disco que Ops Manager puede utilizar para almacenar los archivos de registro de auditoría expresados como decimales. Si superas este límite, Ops Manager eliminará los archivos comprimidos del registro de auditoría hasta que se cumpla dicho límite. Ops Manager elimina primero los archivos de registro de auditoría más antiguos.

spec.applicationDatabase.agent.mongod.auditlogRotate.sizeThresholdMB

Tipo: número

Obligatorio si se rotan los registros de auditoría. Tamaño máximo en MB para una entrada de registro de auditoría individual antes de que Ops Manager lo rote. Ops Manager rota la entrada de registro de auditar inmediatamente si alcanza el valor en sizeThresholdMB o el límite de auditlogRotate.timeThresholdHrs.

spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrs

Tipo: entero

Obligatorio si se rotan los registros de auditoría. Duración máxima en horas para una entrada de registro de auditoría individual antes de la siguiente rotación. El tiempo es desde la última rotación. Ops Manager rota el archivo de registro de auditoría inmediatamente si alcanza el valor en timeThresholdHrs o el límite de auditlogRotate.sizeThresholdM.

spec.applicationDatabase.agent.startupOptions

Tipo: Objeto

Objeto de configuración de MongoDB para opciones de inicio. Consulta Configuraciones del agente MongoDB para conocer los campos disponibles.

spec.applicationDatabase.agent.systemLog

Tipo: Objeto

Objeto de configuración de MongoDB para configurar las opciones de systemLog.

spec.applicationDatabase.agent.systemLog.path

Tipo: string

Por defecto: /var/log/mongodb-mms-automation/mongodb.log

La ruta del archivo de registro a la que mongod o mongos debe enviar toda la información de registro de diagnósticos, en lugar de a la salida estándar o al syslog del host. MongoDB crea la entrada de registro en la ruta especificada.

Los scripts de inicio del paquete de Linux no esperan que systemLog.path cambie por defecto. Si usas los paquetes de Linux y cambias systemLog.path, tendrás que usar tus propios scripts de inicio y desactivar los scripts integrados.

spec.applicationDatabase.agent.systemLog.logAppend

Tipo: booleano

Por defecto: false

Cuando true, mongos o mongod adjunta nuevas entradas al final de la existente entrada de registro cuando la mongos o mongod instancia se reinicia. Sin esta opción, mongod hará una copia de seguridad del registro existente y creará un nuevo archivo.

spec.applicationDatabase.agent.systemLog.destination

Tipo: string

El destino al que MongoDB envía todos los registros de salida. Especifica file o syslog. Si especificas file, también debes especificar systemLog.path.

Si no se especifica systemLog.path, MongoDB envía toda la salida de registro a la salida estándar.

Advertencia

El demonio syslog genera marcas de tiempo cuando registra un mensaje, no cuando MongoDB envía el mensaje. Este comportamiento puede llevar a marcas de tiempo engañosas para las entradas de registro, especialmente cuando el sistema está bajo una carga pesada. Recomendamos utilizar la opción file para sistemas de producción y así garantizar marcas de tiempo precisas.

spec.applicationDatabase.externalAccess

tipo: colección

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

Si añades spec.externalAccess, el Operador de Kubernetes crea un servicio externo para cada Pod en un set de réplicas. Los servicios externos proporcionan un punto de entrada externo para cada pod de la base de datos MongoDB en un clúster. Cada servicio externo tiene selectores que emparejan el servicio externo con 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 por defecto:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del Servicio externo. No puedes cambiar este valor.

Type

LoadBalancer

Crea un servicio externo LoadBalancer.

Port

<Port Number>

Un puerto para mongod.

publishNotReadyAddress

true

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

spec.externalAccess.externalService

tipo: colección

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

Al configurar el ajuste spec.externalAccess, el operador de Kubernetes crea automáticamente un servicio de balanceador de carga externo con valores por defecto. Puedes anular ciertos valores o agregar nuevos valores dependiendo de tus necesidades. Por ejemplo, si tiene la intención de crear servicios NodePort y no necesita un balanceador de cargas, 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 Kubernetes, consulta ServiceSpec en la documentación de Kubernetes.

spec.externalAccess.externalService.annotations

tipo: colección

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

Puedes usar anotaciones para especificar los valores de marcador de posición para los servicios externos utilizados por los implementaciones de Kubernetes operador. El operador de Kubernetes sustituye automáticamente estos valores por los valores correctos, tal como se describe en la siguiente tabla. Utilizar 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 el StatefulSet y dirigido por el servicio externo actual.

{podName}

Igual a {resourceName}-{podIndex}.

{statefulSetName}

El StatefulSet. Igual {resourceName} a.

{externalServiceName}

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

{mongodProcessDomain}

El nombre de dominio del servidor que aloja el proceso mongod. Si se especifica, será igual a spec.externalAccess.externalDomain. De lo contrario, será igual al dominio utilizado para el FQDN del proceso mongod.

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 tu implementación. Si has configurado tu implementación para utilizar external domains, el nombre de host del proceso utiliza el siguiente formato:

{resourceName}-{podIndex}.{mongodProcessDomain}

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

Si tu 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

Debes utilizar únicamente los valores de sustitución conocidos especificados en la tabla y asegurarte de que tus marcadores de posición no utilicen valores vacíos o nulos. Tampoco puedes utilizar un placeholder específico para implementaciones multi clúster de Kubernetes en una única implementación de recurso de MongoDB.

De lo contrario, el operador de Kubernetes devuelve un error. Por ejemplo, se puede encontrar 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 completa automáticamente las anotaciones para los servicios externos en función del valor adecuado para 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 para ServiceSpec. Para obtener más información,spec.externalAccess.externalService consulte.

spec.applicationDatabase.memberConfig

Tipo: arreglo de objetos

Especificación para cada miembro del set de réplicas de la base de datos de la aplicación en su implementación de Ops Manager.

Importante

Si establece spec.topology en MultiCluster, utilice spec.applicationDatabase.clusterSpecList.memberConfig en lugar de spec.applicationDatabase.memberConfig. En una implementación de Ops Manager multi-clúster, el operador de Kubernetes ignora todos los parámetros bajo spec.applicationDatabase.memberConfig.

El número de elementos en la lista memberConfig debe ser igual a spec.applicationDatabase.members.

El orden de los elementos en la lista memberConfig debe estar alineado con el orden de los nodos 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

Considera la siguiente especificación de ejemplo para un set de réplicas de tres nodos para la base de datos de la aplicación:

spec:
applicationDatabase:
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"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.memberConfig.priority

Tipo: string

Número que indica la probabilidad relativa de que un miembro del conjunto de réplicas de la base de datos de la aplicación se convierta en primario.

  • Para aumentar la probabilidad relativa de que un miembro del set de réplicas se convierta en el primario, es necesario especificar un valor de priority más alto.

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

Por ejemplo, un nodo con un memberConfig.priority de 1.5 es más probable que se convierta en primario que un nodo con un memberConfig.priority de 0.5.

Un nodo con un memberConfig.priority de 0 no es elegible para convertirse en el titular primario. Para obtener más información, consulta Prioridad de nodos.

spec.applicationDatabase.memberConfig.tags

Tipo: mapa

Mapa de etiquetas de set de réplicas para dirigir las operaciones de lectura y escritura a miembros específicos del set de réplicas de tu base de datos de la aplicación.

spec.applicationDatabase.memberConfig.votes

Tipo: número

Determina si un miembro del set de réplicas de la base de datos de la aplicación puede votar en una elección. Establecer en 1 para permitir que el nodo vote. Configúralo en 0 para excluir al nodo de una elección.

spec.applicationDatabase.passwordSecretKeyRef.name

Tipo: string

Nombre del secreto que contiene la contraseña para el usuario de base de datos de Ops Manager mongodb-ops-manager. Ops Manager utiliza esta contraseña para autenticarse en la Base de Datos de la Aplicación.

spec.applicationDatabase.passwordSecretKeyRef.key

Tipo: string

Nombre del campo en el secreto que contiene la contraseña del usuario de base de datos de Ops Manager mongodb-ops-manager. Ops Manager utiliza esta contraseña para autenticarse en la base de datos de la aplicación.

El valor por defecto es password.

spec.applicationDatabase.security.certsSecretPrefix

Tipo: string

Texto para anteponer al secreto de Kubernetes secreto que creó y que contiene la clave y el certificado TLS de su base de datos de la aplicación.

Debes nombrar tu secreto <prefix>-<metadata.name>-db-cert.

Para aprender a configurar su instancia de Ops Manager para que ejecute sobre HTTPS, consulte Implementar un recurso de Ops Manager.

spec.applicationDatabase.security.tls.ca

Tipo: string

Nombre de la ConfigMap de Kubernetes que contiene el archivo CA para la base de datos de la aplicación.

Importante

spec.applicationDatabase.security.tls.ca es necesario si utiliza una CA personalizada para firmar los certificados TLS de su base de datos de aplicaciones.

El operador de Kubernetes requiere que se nombre el certificado de la base de datos de la aplicación como ca-pem en el ConfigMap.

La CA especificada en esta sección también se utiliza para configurar certificados TLS personalizados para el almacenamiento S3 cuando spec.backup.s3OpLogStores.customCertificate o spec.backup.s3Stores.customCertificate están configurados como true.

Esta AC firma los certificados que:

  • los miembros del set de réplicas de la base de datos de la aplicación utilizan para comunicarse entre sí; y

  • Ops Manager utiliza para comunicarse con el set de réplicas de la base de datos de la aplicación.

Advertencia

Debe concatenar su archivo CA personalizado y toda la cadena de certificados TLS de downloads.mongodb.com para evitar que Ops Manager deje de funcionar si se reinicia la base de datos de la aplicación.

spec.applicationDatabase.security.tls.enabled

Importante

spec.security.applicationDatabase.tls.enabled Esta función está obsoleta y se eliminará en una versión futura. Para habilitar TLS, proporcione un valor para la configuración spec.security.applicationDatabase.certsSecretPrefix.

Encripta las comunicaciones mediante certificados TLS entre Ops Manager y la Base de Datos de la Aplicación.

La configuración siguiente se aplica cuando utilizas Prometheus con tu base de datos de la aplicación:

spec.applicationDatabase.prometheus

Tipo: arreglo

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

spec.applicationDatabase.prometheus.metricsPath

Tipo: string

Por defecto: "/metrics"

Opcional. String legible para el usuario que indica la ruta al endpoint de métricas. Si no especificas esta configuración, se aplica la por defecto.

spec.applicationDatabase.prometheus.passwordSecretRef

Tipo: Objeto

Condicional Objeto que contiene los detalles del secreto para la autenticación HTTP básica. Si deseas usar Prometheus con tu Base de Datos de la Aplicación, debes especificar esta configuración.

spec.applicationDatabase.prometheus.passwordSecretRef.key

Tipo: string

Por defecto: "password"

opcional. string legible por humanos que identifica la clave en el secreto que almacena la contraseña para la autenticación HTTP básica. Si no especificas este ajuste, se aplica el ajuste por defecto.

spec.applicationDatabase.prometheus.passwordSecretRef.name

Tipo: string

Condicional

Etiqueta legible por humanos que identifica el secreto que contiene la contraseña para la autenticación HTTP básica. Si quieres usar Prometheus con tu base de datos de la aplicación, debes especificar esta configuración.

spec.applicationDatabase.prometheus.port

Tipo: entero

por defecto: 9216

opcional. Número que identifica el puerto al que se vinculará el endpoint de métricas. Si no especificas esta configuración, se aplicará la por defecto.

spec.applicationDatabase.prometheus.tlseSecretKeyRef

Tipo: Objeto

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

spec.applicationDatabase.prometheus.tlseSecretKeyRef.key

Tipo: string

Por defecto: "password"

opcional. string legible por el usuario 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 aplicará la por defecto.

spec.applicationDatabase.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 quieres usar Prometheus con tu base de datos de la aplicación y usar la autenticación TLS, debes especificar esta configuración.

spec.applicationDatabase.prometheus.username

Tipo: string

Condicional. Etiqueta legible por humanos que identifica al usuario para la autenticación HTTP básica. Si quieres utilizar Prometheus con tu base de datos de la aplicación, debes especificar esta configuración.

Esta sección describe los ajustes que debes utilizar para tu implementación multiclúster de Ops Manager además de los ajustes obligatorios de Ops Manager.

spec.clusterSpecList.members

Tipo: entero

Condicional. El número de nodos de Ops Manager en el clúster de Ops Manager en una implementación de MongoDB de clústeres múltiples de Kubernetes. Cuando estableces spec.topology a MultiCluster, debes especificar el valor para este parámetro. Omita este parámetro para implementaciones de clúster único. Si se establece este parámetro en cero, se remueve este clúster nodo de Ops Manager de la lista de clústeres nodo en el clúster multi-Kubernetes de instancias de Ops Manager.

spec.topology

Tipo: string

El tipo de implementación de Kubernetes para el recurso de Ops Manager.

  • Los valores son SingleCluster o MultiCluster. Si se omite, el valor por defecto es SingleCluster.

  • Si especificas MultiCluster:

Los recursos de Ops Manager también pueden utilizar los siguientes ajustes específicos para implementaciones de Ops Manager en varios clústeres:

spec.clusterSpecList

tipo: colección

Condicional. Detalles de los clústeres miembro de Kubernetes seleccionados en un clúster multi-Kubernetes donde se pretende implementar instancias de Ops Manager o daemon de copias de seguridad. Consulte también el ejemplo de la especificación del recurso.

spec.clusterSpecList.clusterName

Tipo: string

opcional. Nombre del clúster de Kubernetes nodo en una implementación de MongoDB con múltiples clústeres de Kubernetes, donde el Operador de MongoDB Controllers for Kubernetes programa el StatefulSet para Ops Manager o el daemon de copias de seguridad.

spec.clusterSpecList.clusterDomain

Tipo: string

Opcional. Anulación para spec.clusterDomain para el clúster miembro específico de Ops Manager. Si omite este valor, se utilizará el valor predeterminado establecido en spec.clusterDomain. Kubernetes asigna a cada Pod un FQDN. El operador de Kubernetes calcula el FQDN para cada Pod utilizando un valor clusterDomain proporcionado. Kubernetes no proporciona una API para consultar estos nombres de host.

spec.clusterSpecList.configuration

tipo: colección

opcional. Propiedades de configuración de Ops Manager que anulan las propiedades establecidas en spec.configuration para el clúster específico. Consulta Configuración de Ops Manager para obtener los nombres y descripciones de las propiedades. Cada propiedad toma un valor del tipo string. Por ejemplo, al configurar estas propiedades, puedes cambiar las variables de entorno que debes pasar al Administrador de Operaciones y al daemon de copias de seguridad en ese clúster de nodos en particular.

Si omites la especificación de valores, se establecerán los valores por defecto que se indican en spec.configuration.

spec.clusterSpecList.jvmParameters

Tipo: arreglo de cadenas

opcional. Se pasan al JVM los parámetros de Ops Manager y a las instancias del daemon de copias de seguridad para este clúster nodo.

spec.clusterSpecList.externalConnectivity

tipo: colección

opcional. Objeto de configuración que habilita la conectividad externa a Ops Manager para el clúster específico. Esta es una anulación para spec.externalConnectivity para el clúster específico.

Especifica los valores para este parámetro con el fin de cambiar cómo se expone externamente la aplicación de Ops Manager en diferentes clústeres. Por ejemplo, si despliega Ops Manager en nodos de Kubernetes en diferentes proveedores de la nube, es posible que deba especificar valores específicos del proveedor para este parámetro.

Si estableces este parámetro:

  • El Operador de Kubernetes no utiliza spec.externalConnectivity valores para este nodo del clúster de Ops Manager.

  • El operador de Kubernetes crea un servicio de Kubernetes,<om-name>-svc-ext llamado, que permite que el tráfico originado fuera del clúster de Kubernetes llegue a la aplicación Ops Manager en este clúster miembro.

Si omites este parámetro, el Operador de Kubernetes utiliza los valores de spec.externalConnectivity para este clúster nodo.

spec.clusterSpecList.statefulSet.spec

tipo: colección

Opcional. Especificación para el StatefulSet que el operador de controladores de MongoDB para Kubernetes crea para un clúster miembro específico en la implementación de Ops Manager de clústeres múltiples de Kubernetes. Este parámetro anula el valor de spec.statefulSet.spec. Si lo omite, el operador de Kubernetes utiliza los valores de spec.statefulSet.spec. Por ejemplo, puede usar este parámetro para especificar diferentes valores de almacenamiento para cada uno de sus clústeres de Ops Manager en la implementación de MongoDB de clústeres múltiples de Kubernetes.

Para revisar qué campos puede agregar a spec.clusterSpecList.statefulSet.spec, consulte StatefulSetSpec v1 apps en la documentación de Kubernetes.

spec.clusterSpecList[*].backup

opcional. Configuración de copias de seguridad que anula los valores especificados en spec.backup para ese clúster miembro en particular.

  • Puedes establecer estos valores solo si spec.backup.enabled está configurado en true.

  • Si omites establecer cualquier valor para este parámetro, se usarán los valores por defecto especificados en la configuración bajo spec.backup.

  • No todos los ajustes de copia de seguridad están disponibles en esta opción de anulación. No puedes anular los siguientes ajustes de copia de seguridad porque se aplican globalmente a todos los clústeres de nodos, si se especifican bajo spec.backup:

    • externalServiceEnabled

    • headDB

    • opLogStores

    • blockStores

    • s3Stores

    • fileSystemStores

    • queryableBackupSecretRef

    • encryption

spec.clusterSpecList[*].backup.members

Tipo: entero

opcional. Anulación para spec.backup.members. El número de instancias de daemon de copias de seguridad a implementar en este clúster. si omite este valor o proporciona un valor de 0, el operador de Kubernetes no implementará instancias de daemon de copias de seguridad en un clúster de nodos en particular.

spec.clusterSpecList[*].backup.assignmentLabels

Tipo: arreglo de cadenas

opcional. Anulación para spec.backup.assignmentLabels. Si se especifica, el Operador de Kubernetes utiliza los valores que usted especifica en esta anulación para todas las instancias de daemon de copias de seguridad en un clúster de nodo en particular. Si omites valores para este parámetro, los valores por defecto serán los especificados en spec.backup.assignmentLabels para todas las instancias daemon de copias de seguridad en un clúster nodo.

spec.clusterSpecList[*].backup.jvmParameters

Tipo: arreglo de cadenas

Opcional. Anulación para spec.backup.jvmParameters. Permite personalizar el valor de la JVM para las instancias de Backup Daemon en un clúster miembro específico.

spec.clusterSpecList[*].backup.statefulSet

Tipo: string

Opcional. Anulación para spec.backup.statefulSet.spec. Permite personalizar los valores de un demonio de copia de seguridad en un clúster miembro específico. Para consultar los campos que puede agregar a spec.clusterSpecList[*].backup.statefulSet, vea StatefulSetSpec v1 apps en la documentación de Kubernetes.

Esta sección describe los ajustes específicos de tu implementación de Ops Manager de múltiples clústeres que debes usar para tu base de datos de la aplicación.

spec.applicationDatabase.clusterSpecList

tipo: colección

Detalles de los clústeres nodo seleccionados de Kubernetes en una implementación de clúster MongoDB multi-Kubernetes que funcionan como nodos que albergan la base de datos de la aplicación.

spec.applicationDatabase.clusterSpecList.clusterName

Tipo: string

Nombre del clúster nodo de Kubernetes en una implementación multi-Kubernetes de MongoDB donde los Controladores de MongoDB para el operador de Kubernetes programa el StatefulSet para la base de datos de la aplicación.

Importante

No se puede convertir una instancia de Ops Manager de un solo clúster en una instancia de implementación de MongoDB de clústeres multi-Kubernetes modificando la topology y los clusterSpecList ajustes en el CRD.

spec.applicationDatabase.clusterSpecList.members

Tipo: número

Número de nodos statefulSet en el clúster de miembros dado. El nodo clúster es uno de los nodos clústeres que alojan la base de datos de la aplicación en una implementación de MongoDB con múltiples clústeres de Kubernetes.

spec.applicationDatabase.topology

Tipo: string

El tipo de implementación de Kubernetes para la base de datos de la aplicación.

  • Los valores son SingleCluster o MultiCluster. Si se omite, el valor por defecto es SingleCluster.

  • Si especifica MultiCluster, debe especificar al menos un nodo

  • clúster en el que deseas implementar la base de datos de la aplicación utilizando los parámetros clusterSpecList, clusterName, members.

  • Si especificas MultiCluster, el operador de Kubernetes ignora los valores que establezca para el campo spec.applicationDatabase.members.

Para obtener más información, consulta el ejemplo de la especificación del recurso multidistribuido.

Esta sección describe la configuración específica de tu implementación de Ops Manager de múltiples clústeres que puedes usar para tu base de datos de la aplicación.

spec.applicationDatabase.clusterSpecList.externalAccess

Tipo: string

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

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

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

Por ejemplo:

multi-replica-set-0-1.cluster-0.example.com

Importante

Utiliza este ajuste solo cuando despliegues una implementación de base de datos de la aplicación sin una malla de servicios. Consulta Ops Manager multiplataforma sin una malla de servicios.

spec.applicationDatabase.clusterSpecList.memberConfig

Tipo: arreglo de cadenas

Especificación para cada miembro del set de réplicas de la base de datos de la aplicación en su implementación multiclúster de Ops Manager.

Importante

Si configuras spec.topology a SingleCluster, utiliza spec.applicationDatabase.memberConfig en lugar de spec.applicationDatabase.clusterSpecList.memberConfig.

El número de elementos en la lista memberConfig debe ser igual a spec.applicationDatabase.clusterSpecList.members.

El orden de los elementos en la lista memberConfig debe estar alineado con el orden de los nodos 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

Considera la siguiente especificación de ejemplo para un set de réplicas de tres nodos para la base de datos de la aplicación:

spec:
replicas: 3
version: 8.0.0
backup:
enabled: true
storage:
resources:
requests:
storage: 10Gi
storageClassName: standard
applicationDatabase:
clusterSpecList:
- name: appdb
members: 3
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"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.clusterSpecList.memberConfig.priority

Tipo: string

Número que indica la probabilidad relativa de que un miembro del conjunto de réplicas de la base de datos de la aplicación se convierta en primario.

  • Para aumentar la probabilidad relativa de que un miembro del set de réplicas se convierta en el primario, es necesario especificar un valor de priority más alto.

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

Por ejemplo, un nodo con un memberConfig.priority de 1.5 es más probable que se convierta en primario que un nodo con un memberConfig.priority de 0.5.

Un nodo con un memberConfig.priority de 0 no es elegible para convertirse en el titular primario. Para obtener más información, consulta Prioridad de nodos.

spec.applicationDatabase.clusterSpecList.memberConfig.tags

Tipo: mapa

Mapa de etiquetas de set de réplicas para dirigir las operaciones de lectura y escritura a miembros específicos del set de réplicas de tu base de datos de la aplicación.

spec.applicationDatabase.clusterSpecList.memberConfig.votes

Tipo: número

Determina si un miembro del set de réplicas de la base de datos de la aplicación puede votar en una elección. Establecer en 1 para permitir que el nodo vote. Configúralo en 0 para excluir al nodo de una elección.