La Controladores MongoDB para Kubernetes operador crea una implementación de Ops Manager en contenedor a partir de archivos de especificaciones que tú mismo escribas.
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 utiliza una especificación de objeto en YAML para definir las características y configuraciones de la implementación.
Ejemplos
Los siguientes ejemplos muestran una especificación de recursos para una implementación de Ops Manager:
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 6 topology: SingleCluster # optional, SingleCluster by default 7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator 8 replicas: 1 9 version: "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
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 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 37 replicas: 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
Configuraciones requeridas de Ops Manager
Esta sección describe la configuración que se debe utilizar para todos los recursos de Ops Manager.
kindTipo: string
Requerido. Tipo de recurso de MongoDB Kubernetes a crear. Establece esto en
MongoDBOpsManager.
metadata.nameTipo: string
Obligatorio. Nombre del recurso de MongoDB Kubernetes que estás creando.
Los nombres de recursos deben tener 44 caracteres o menos.
spec.versionTipo: string
Obligatorio. Versión de Ops Manager que desea instalar en este recurso de MongoDB Kubernetes.
spec.adminCredentialsTipo: string
Obligatorio. Nombre del secreto de Kubernetes creado 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 un herramienta de almacenamiento secreto. Las implementaciones en varios 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.replicasTipo: entero
Condicional. Número de instancias de Ops Manager que se ejecutarán en paralelo. Si especificas
SingleClusterenspec.topology, este parámetro es obligatorio. El valor mínimo aceptado es1.Si especificas
MultiClusterenspec.topology, este parámetro se ignorará.
Configuraciones opcionales de Ops Manager
Los recursos de Ops Manager también pueden usar las siguientes configuraciones:
spec.backup.fileSystemStoresTipo: 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.LogBackAccessRefTipo: string
Referencia a un ConfigMap que contiene un archivo
logback-access.xmlpersonalizado 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.xmlpara 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.LogBackRefTipo: 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.xmlpara 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.logging.LogBackAccessRefTipo: string
Referencia a un ConfigMap que contiene un archivo
logback-access.xmlpersonalizado para configurar los registros de Ops Manager.La clave en el ConfigMap debe ser exactamente
logback-access.xmlpara 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.LogBackRefTipo: string
Referencia a un ConfigMap que contiene un archivo
logback.xmlpersonalizado. 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.xmlpara 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 volumenemptyDircon un volumen persistente para evitar bloqueos de pods. Para obtener más información, consultespec.statefulSet.spec.template.spec.volumes.
spec.opsManagerURLTipo: 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.opsManagerURLcon 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 elspec.opsManagerURLpara 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 elspec.opsManagerURLpara gestionar bases de datos particulares de MongoDB.Cambia el parámetro
spec.opsManagerURLa 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.clusterDomainTipo: string
Kubernetes asigna a cada Pod un FQDN. El Operador de Kubernetes calcula el FQDN para cada Pod usando un
clusterDomainproporcionado. Kubernetes no proporciona una API para query estos nombres de host.
spec.clusterNameTipo: string
Kubernetes asigna a cada Pod un FQDN. El Operador de Kubernetes calcula el FQDN para cada Pod usando un
clusterNameproporcionado. Kubernetes no proporciona una API para query estos nombres de host.
spec.configurationtipo: 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.centralUrlaspec.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.verifyDownloadsTipo: 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.queryableTipo: booleano
Establezca en
falsepara desactivar los respaldos consultables.
spec.configuration.mms.featureFlag.backup.wt.queryableTipo: booleano
Configura en
falsepara desactivar el respaldo consultable al utilizar WiredTiger.
spec.configuration.mms.mongoDbUsage.defaultUsageTypeTipo: string
El tipo de servidor por defectodel servicio de Kubernetes.
Los valores aceptados son:
PRODUCTION_SERVER,TEST_SERVER,DEV_SERVERyRAM_POOL.
spec.jvmParametersTipo: arreglo de cadenas
opcional. JVM parámetros pasados a la aplicación Ops Manager en el contenedor. Cualquier parámetro dado reemplaza los parámetros JVM por defecto 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 sus valores de heap de memoria de la JVM de la Aplicación Ops Manager en función de la memoria del contenedor. Cambiar los valores de
-Xmsy-Xmxpuede causar problemas con el Administrador de operaciones.
spec.security.certsSecretPrefixTipo: string
Texto que se debe anteponer al secreto de Kubernetes que creaste 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 funcione a través de HTTPS, consulte Desplegar un recurso de Ops Manager.
spec.security.tls.caNombre del ConfigMap de Kubernetes que contiene un archivo personalizado CA para Ops Manager.
Importante
spec.security.tls.caes requerido si utilizas un CA personalizado para firmar tus certificados TLS de Ops Manager.El Operador de Kubernetes requiere que asignes un nombre al certificado para el recurso Ops Manager
mms-ca.crten 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
Debes concatenar tu archivo CA personalizado y toda la cadena de certificados TLS desde
downloads.mongodb.compara evitar que Ops Manager quede inoperativo si la base de datos de la aplicación se reinicia.
spec.security.tls.enabledImportante
spec.security.tls.enabledestá obsoleto y se eliminará en una versión futura. Para habilitar TLS, proporciona un valor para la configuraciónspec.security.certsSecretPrefix.Encripta las comunicaciones usando certificados TLS entre clientes y Ops Manager.
spec.statefulSet.spectipo: colección
Especificación para el StatefulSet que los Controladores de MongoDB para Kubernetes operador crean para Ops Manager.
Para revisar qué campos se pueden agregar a
spec.statefulSet.spec, consulte StatefulSetSpec v1 aplicaciones en la documentación de Kubernetes.
spec.statefulSet.spec.templatetipo: 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.metadatatipo: 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 puedes agregar a
spec.statefulSet.spec.template.metadata, consulta la documentación de Kubernetes.
spec.statefulSet.spec.template.spectipo: 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 puedes añadir a
spec.statefulSet.spec.template.spec, consulta la documentación de Kubernetes.El siguiente ejemplo
spec.statefulSet.spec.template.specdefine 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.containerstipo: 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.cpuTipo: string
Capacidad mínima de CPU que debe estar disponible en un nodo de Kubernetes para host 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.cpuTipo: string
Capacidad máxima de CPU para el nodo que se está creando para alojar el Ops Manager. 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.memoryTipo: string
Capacidad mínima de memoria que debe estar disponible en un nodo de 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.memoryTipo: string
Capacidad máxima de memoria para el nodo que se está creando para el host de Ops Manager. Si se omite, este valor se establece en
spec.statefulSet.spec.template.spec.containers.resources.requests.memoryEl 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.volumestipo: 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
dataen el tablero de Ops Manager StatefulSet.El volumen de Kubernetes de
datautiliza un tipoemptyDirpor defecto. Para anularlo y utilizar un volumen persistente, añade la siguiente configuración a tu recursoMongoDBOpsManager:statefulSet: spec: template: spec: volumes: - name: data persistentVolumeClaim: claimName: <my-pvc> Reemplaza
<my-pvc>con el nombre de tu Kubernetes PersistentVolumeClaim.
Configuración de conectividad externa
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.externalConnectivitytipo: 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.typeTipo: string
El servicio de Kubernetes ServiceType que expone Ops Manager fuera de Kubernetes.
Obligatorio si
spec.externalConnectivity.typeestá presente.Los valores aceptados son:
LoadBalanceryNodePort. Se recomiendaLoadBalancersi su proveedor de nube lo admite. UtilizaNodePortpara implementaciones locales.
spec.externalConnectivity.portTipo: 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.typeesNodePort: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.typeesLoadBalancer: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.loadBalancerIPTipo: string
La dirección IP que el servicio de Kubernetes
LoadBalancerutiliza cuando el Operador de Kubernetes lo crea.Esta configuración solo puede utilizarse si su proveedor de nube la admite y
spec.externalConnectivity.typeestáLoadBalancer. Para obtener más información sobre el Tipo LoadBalancer, consulta la documentación de Kubernetes.
spec.externalConnectivity.externalTrafficPolicyTipo: 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:
ClusteryLocal. Para aprender cuáles de los valores cumplen con tus requisitos, consulta IPs de origen en Kubernetes en la documentación de Kubernetes.Nota
Si selecciona
Cluster, elSource-IPde sus clientes se pierden durante los saltos de red que ocurren en el límite de la red de Kubernetes.
spec.externalConnectivity.annotationstipo: 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.
Configuración de copias de seguridad
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.assignmentLabelsTipo: 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.enabledTipo: 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.encryptionTipo: Objeto
Un objeto que contiene la configuración de cifrado de copias de seguridad.
spec.backup.encryption.kmipTipo: Objeto
Objeto que contiene la configuración de copia de seguridad de KMIP. Para obtener más información, consulta Configuración del cifrado de copia de seguridad KMIP para Ops Manager.
Nota
Si estableces este parámetro, la clave API vinculada con el valor de
spec.credentialsdebe tener el rol deGlobal Owner.
spec.backup.encryption.kmip.serverTipo: Objeto
Objeto que contiene la configuración del servidor de cifrado de copia de seguridad KMIP.
spec.backup.encryption.kmip.server.caTipo: string
Etiqueta legible por humanos que identifica el ConfigMap que contiene una entrada para el certificado CA (
ca.pem) que se usará para la autenticación KMIP.
spec.backup.encryption.kmip.server.urlTipo: string
URL para el servidor KMIP que utiliza el formato
hostname.port(por ejemplo,192.168.1.3:5696omy-kmip-server.mycorp.com:5696).
spec.backup.headDBtipo: 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.
EscalarTipo de datoDescripciónlabelSelectorstring
Etiqueta utilizada para vincular volúmenes montados a directorios.
storagestring
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.storageClassstring
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úrate de establecer el StorageClass
reclaimPolicycomo Retain. Esto garantiza que los datos se conserven cuando se elimine una Solicitud de Volumen Persistente.
spec.backup.jvmParametersTipo: arreglo de cadenas
opcional. JVM parámetros pasados al servicio de copias de seguridad de 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 Kubernetes calcula los valores de la memoria heap de la JVM del servicio de copia de seguridad en función de la memoria del contenedor. Cambiar los valores
-Xmsy-Xmxpuede causar problemas con Ops Manager.
spec.backup.membersTipo: 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.opLogStorestipo: 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.assignmentLabelsTipo: 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.nameTipo: 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.nameTipo: string
Obligatorio si habilitas la Copia de seguridad. Nombre del recurso
MongoDBo del recursoMongoDBMultiClusterque 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
SCRAMen 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
namedel 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
backupentra en el estadoPending. 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
mongoURIysslen la configuración del Ops Manager según tus cambios.Importante
Si el campo
mongodbResourceRefno está configurado explícitamente, Ops Manager utiliza por defecto la base de datos de la aplicación, que tiene capacidad de escalamiento limitada y puede no ser adecuada para ambientes más grandes.Esta configuración por defecto no se recomienda para implementaciones de producción o a gran escala, ya que puede conducir a una grave degradación del rendimiento, inestabilidad en la Base de Datos de la Aplicación y fallos de copia de seguridad. Para entornos de producción, siempre configure una instancia de MongoDB separada utilizando
mongodbResourceRefpara los metadatos de cada copia de seguridad y almacén de registro de operaciones.No se puede cambiar la configuración seleccionada ni migrar la copia de seguridad a otra ubicación después de la implementación. La única alternativa es detener totalmente la copia de seguridad y reiniciarla, lo que hace que todas las copias de seguridad anteriores dejen de estar disponibles.
spec.backup.opLogStores.mongodbUserRef.nameTipo: 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.blockStorestipo: 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.assignmentLabelsTipo: 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.nameTipo: 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.nameTipo: 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
SCRAMen 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
namedel 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
backupentra en el estadoPending. 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
mongoURIysslen la configuración del Ops Manager según tus cambios.Importante
Si el campo
mongodbResourceRefno está configurado explícitamente, Ops Manager utiliza por defecto la base de datos de la aplicación, que tiene capacidad de escalamiento limitada y puede no ser adecuada para ambientes más grandes.Esta configuración por defecto no se recomienda para implementaciones de producción o a gran escala, ya que puede conducir a una grave degradación del rendimiento, inestabilidad en la Base de Datos de la Aplicación y fallos de copia de seguridad. Para entornos de producción, siempre configure una instancia de MongoDB separada utilizando
mongodbResourceRefpara los metadatos de cada copia de seguridad y almacén de registro de operaciones.No se puede cambiar la configuración seleccionada ni migrar la copia de seguridad a otra ubicación después de la implementación. La única alternativa es detener totalmente la copia de seguridad y reiniciarla, lo que hace que todas las copias de seguridad anteriores dejen de estar disponibles.
spec.backup.blockStores.mongodbUserRef.nameTipo: 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.nameTipo: 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.spectipo: 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 se pueden agregar a
spec.backup.statefulSet.spec, consulte StatefulSetSpec v1 aplicaciones en la documentación de Kubernetes.
spec.backup.statefulSet.spec.templatetipo: 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.metadatatipo: 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 puedes agregar a
spec.backup.statefulSet.spec.template.metadata, consulta la documentación de Kubernetes.
spec.backup.statefulSet.spec.template.spectipo: 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 puedes añadir a
spec.backup.statefulSet.spec.template.spec, consulta la documentación de Kubernetes.El siguiente ejemplo
spec.backup.statefulSet.spec.template.specdefine 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.containerstipo: 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.cpuTipo: string
Capacidad mínima de CPU que debe estar disponible en un nodo de Kubernetes nodo para albergar el servicio del 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.cpuTipo: string
La capacidad máxima de CPU para el nodo que se crea para alojar el servicio de daemon de copias 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.memoryTipo: string
Se requiere una capacidad mínima de memoria 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 la notación JEDEC.
Nota
Establece este valor en al menos
4.5Gi. Valores menores a4.5Gipueden 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.memoryTipo: string
Capacidad máxima de memoria del nodo que se está creando para alojar el servicio de daemon de copias 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.
Configuraciones S3
Puedes configurar Ops Manager para usar S3 para almacenar los oplogs y las instantáneas de copia de seguridad, y proteger las conexiones a S3 con TLS usando claves emitidas por una CA personalizada.
Para configurar claves CA personalizadas, use el ConfigMap con el que configuró el TLS para su base de datos de la aplicación como se describe en la TLS-Encrypted Connection (HTTPS) pestaña de Implementar un recurso Ops Manager. Establece spec.applicationDatabase.security.tls.ca en este ConfigMap.
Puede utilizar TLS tanto para S3 como para su base de datos de la aplicación, o solo para S3.
Para usar TLS para ambos, obtén certificados para ambos propósitos desde el mismo
ca-pemreferenciado en el ConfigMap.Para utilizar TLS solo para S3, no definas
spec.security.applicationDatabase.certsSecretPrefixen tu ConfigMap.
spec.backup.s3OpLogStores.assignmentLabelsTipo: arreglo de cadenas
Una lista de etiquetas de asignación para las tiendas de registro de operaciones S3. Utiliza etiquetas de asignación para identificar que los almacenes S3 oplog específicos están asociados a proyectos particulares. Si estableces etiquetas de asignación mediante el operador de Kubernetes, los valores que configuras en el archivo de configuración de Kubernetes para las etiquetas de asignación sobrescriben los valores definidos en la interfaz de usuario de Ops Manager. Las etiquetas de asignación que no se configuran utilizando el Operador de Kubernetes continúan utilizando los valores definidos en la interfaz de usuario de Ops Manager.
spec.backup.s3OpLogStores.customCertificateTipo: booleano
Obsoleto. Utiliza
spec.backup.s3OpLogStores.customCertificateSecretRefsen su lugar.Indicador que determina si utiliza certificados AppDB (
appdb-ca) como el certificado personalizado de TLS para su almacén de oplog de S3. El valor por defecto esFalse.
spec.backup.s3OpLogStores.customCertificateSecretRefsTipo: arreglo de objetos
Lista de certificados personalizados para su almacén de oplog S3 usando secretos de Kubernetes. El certificado x.509 codificado en base64debe estar presente en un secreto de Kubernetes con una clave y debe ser parseable por el Java CertifcateFactory. No puedes especificar múltiples certificados en una cadena en un solo secreto. Si especificas múltiples certificados en una cadena en un solo secreto, el operador de Kubernetes utiliza solo el primer certificado en la cadena. Si también proporciona la configuración
customCertificate, el operador de Kubernetes usa elspec.applicationDatabase.security.tls.cacomo certificado personalizado para copias de seguridad.Cada entrada de la lista especifica el
namey elkey. Si especifica múltiples secretos, Kubernetes operador utiliza todos los certificados de los secretos especificados.Si no proporciona esta configuración, Ops Manager utilizará el JVM Trust Store predeterminado que se utiliza en Ops Manager.
spec.backup.s3OpLogStores.customCertificateSecretRefs.nameTipo: 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.defaultUsageTypeTipo: string
El tipo de servidor por defectodel servicio de Kubernetes.
spec.backup.s3OpLogStores.customCertificateSecretRefs.keyTipo: string
Requerido para utilizar certificados personalizados para tu S3 tienda de Oplog. Archivo que representa la clave en el secreto que contiene el certificado x.509 codificado en base64. Si no especificas esta configuración, el Operador de Kubernetes no podrá utilizar el certificado personalizado para las copias de seguridad del almacén de Oplog de S3.
spec.backup.s3OpLogStores.irsaEnabledTipo: booleano
Flag que permite usar AWS roles IAM para cuentas de servicio en AWS EKS para configurar un almacén de S3 oplog. El valor por defecto es
False. Si no utilizas AWS EKS, esta bandera no tiene efecto. Cuando se configura enFalse, el uso de roles IAM de AWS para cuentas de servicio en EKS para configurar un almacén de S3 oplog está deshabilitado. Para aprender más, consulta Roles IAM para cuentas de servicio en EKS.
spec.backup.s3OpLogStores.nameTipo: string
Es necesario almacenar el oplog utilizando un almacenamiento S3. Nombre del almacén de oplog S3.
spec.backup.s3OpLogStores.mongodbResourceRef.nameTipo: string
Nombre del recurso de base de datos de MongoDB que se crea para almacenar metadatos para el S3 almacén de oplog. Debes implementar este recurso de base de datos en el mismo namespace que el recurso de Ops Manager.
Nota
Omita esta configuración para utilizar la Base de Datos de la Aplicación para almacenar los metadatos de el S3 almacén de oplog.
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 deSCRAMinternamente.Si habilitas la autenticación
SCRAMen esta base de datos, debes:Crea un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos.
Especifica el
namedel usuario en la definición de recurso de Ops Manager.
spec.backup.s3OpLogStores.mongodbUserRef.nameTipo: string
Obligatorio si ha creado un recurso de base de datos MongoDB para almacenar metadatos del registro de operaciones de 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 de la tienda de oplog de S3. Implemente este recurso de usuario en el mismo espacio de nombres que el recurso de Ops Manager con todos los siguientes roles:
Importante
Una vez especificado, no edites el nombre del S3 almacén de oplog de metadatos nombre de usuario.
spec.backup.s3OpLogStores.s3SecretRef.nameTipo: string
Obligatorio para guardar el oplog utilizando un almacén S3 si
spec.backup.s3OpLogStores.irsaEnabledno está configurado entrue.Nombre del secreto que contiene los campos
accessKeyysecretKey. El servicio de daemon de copias de seguridad utiliza los valores de estos campos como credenciales para acceder a tu AWS S3 o al bucket compatible S3. Para configurar el almacén de Oplog S3, debes especificar ambas claves en el secreto.Si configuras
spec.backup.s3OpLogStores.irsaEnabledcomotrue, no necesitas configurars3SecretRef, porque las credenciales de AWS S3 se montan como variables de entorno del pod.
spec.backup.s3OpLogStores.pathStyleAccessEnabledTipo: booleano
Indica el estilo de la URL del endpoint del bucket.
ValorDescripciónEjemplotrueURL con estilo de ruta
s3.amazonaws.com/<bucket>falseURL con estilo de host virtual
<bucket>.s3.amazonaws.comPara 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.s3BucketEndpointTipo: string
Requerido para almacenar el oplog usando un almacén S3. URL del bucket AWS S3 o del bucket compatible con S3que aloja el almacén de registros de operaciones (oplog).
Nota
Si el endpoint no incluye una región en su URL, especifica el campo
s3RegionOverride.
spec.backup.s3OpLogStores.s3BucketNameTipo: string
Requerido para almacenar el oplog usando un almacén S3. Nombre del AWS S3 bucket o S3bucket compatible que aloja la tienda de oplog.
spec.backup.s3OpLogStores.s3RegionOverrideTipo: string
Región donde reside su bucket compatible con S3. Utiliza este campo solo si tu S3 almacén de oplog
s3BucketEndpointno admite la delimitación por regiones. La delimitación de la región se produce cuando el endpoint no incluye una región en su URL.No utilices este campo con los cubos AWS S3. Para obtener más información, consulta la Configuración de almacenamiento en bloque de S3.
spec.backup.s3Stores.assignmentLabelsTipo: arreglo de cadenas
Una lista de etiquetas de asignación para los buckets compatibles con S3 o S3en los que almacena los snapshots de copia de seguridad de la base de datos. Utiliza etiquetas de asignación para identificar que almacenes específicos S3 están asociados a proyectos concretos. Si configura etiquetas de asignación utilizando el operador de Kubernetes, los valores que configure 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 estableces utilizando el operador de Kubernetes siguen utilizando los valores establecidos en la Ops Manager Interfaz de Usuario.
spec.backup.s3Stores.customCertificateTipo: booleano
Obsoleto. Utiliza
spec.backup.s3Stores.customCertificateSecretRefsen su lugar.Flag que indica si se utilizan los certificados de la base de datos de la aplicación (
appdb-ca) como el certificado TLS personalizado de sus TLS para sus S3 copias de seguridad. El valor por defecto esFalse.
spec.backup.s3Stores.customCertificateSecretRefsTipo: arreglo de objetos
Lista de certificados personalizados para tu S3 almacén de instantáneas usando secretos de Kubernetes. El certificado x.509 codificado en base64ya debe estar presente en un secreto de Kubernetes con una clave y debe poder ser analizado por el Java CertifcateFactory. No puedes especificar varios certificados en una cadena en un solo secreto. Si se especifica más de un certificado en una cadena dentro de un mismo secreto, el Kubernetes Operator utiliza únicamente el primer certificado en la cadena. Si también se proporciona la configuración
spec.backup.s3Stores.customCertificate, el operador de Kubernetes utilizaspec.applicationDatabase.security.tls.cacomo el certificado personalizado para las copias de seguridad.Cada entrada en la lista especifica el
namey elkey. 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.nameTipo: 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.keyTipo: string
Requerido para usar certificados personalizados para tu almacenamiento S3 oplog. Archivo que representa la clave en el secreto que contiene el certificado codificado en base64-x.509. Si no se especifica este ajuste, el operador de Kubernetes no puede utilizar el certificado personalizado para el almacenamiento de snapshot S3 y recurre al almacén de confianza JVM {Java Virtual Machine) por defecto utilizado por Ops Manager.
spec.backup.s3Stores.irsaEnabledTipo: booleano
Bandera que permite usar AWS roles IAM de AWS para cuentas de servicio en AWS EKS para configurar un almacenamiento de snapshot S3. El valor por defecto es
False. Si no utilizas AWS EKS, esta bandera no tiene ningún efecto. Cuando se configura enFalse, se desactiva el uso de AWS IAM roles for service accounts en EKS para configurar un S3 almacenamiento de snapshot. Para obtener más información, consulta Roles de IAM para cuentas de servicio en EKS.
spec.backup.s3Stores.nameTipo: string
Requerido para almacenar el oplog usando un almacén S3. Nombre del almacenamiento de snapshot S3.
Importante
Una vez que se especifica, no edites el nombre del almacén de snapshots de S3. Este cambio probablemente falle si las copias de seguridad utilizan el nombre antiguo. Las consecuencias de un cambio exitoso son impredecibles.
spec.backup.s3Stores.mongodbResourceRef.nameTipo: string
Nombre del recurso
MongoDBo recursoMongoDBMultiClusterque crees para almacenar metadatos para el almacén de snapshots de S3. Debes implementar este recurso de base de datos en el mismo namespace que el recurso Ops Manager.Nota
Omit this setting to use the base de datos de la aplicación to store metadata for the S3 almacenamiento de snapshot.
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 deSCRAMinternamente.Si habilitas la autenticación
SCRAMen esta base de datos, debes:Crea un recurso de usuario de MongoDB para conectar Ops Manager a la base de datos.
Especifica el
namedel usuario en la definición de recurso de Ops Manager.
Importante
Una vez que se especifica, no edites el nombre del almacén de snapshots de S3. Este cambio probablemente falle si las copias de seguridad utilizan el nombre antiguo. Las consecuencias de un cambio exitoso son impredecibles.
Si un recurso de base de datos MongoDB con este nombre no existe, el recurso
backupentra en el estadoPending. 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
mongoURIysslen la configuración del Ops Manager según tus cambios.Importante
Si el campo
mongodbResourceRefno está configurado explícitamente, Ops Manager utiliza por defecto la base de datos de la aplicación, que tiene capacidad de escalamiento limitada y puede no ser adecuada para ambientes más grandes.Esta configuración por defecto no se recomienda para implementaciones de producción o a gran escala, ya que puede conducir a una grave degradación del rendimiento, inestabilidad en la Base de Datos de la Aplicación y fallos de copia de seguridad. Para entornos de producción, siempre configure una instancia de MongoDB separada utilizando
mongodbResourceRefpara los metadatos de cada copia de seguridad y almacén de registro de operaciones.No se puede cambiar la configuración seleccionada ni migrar la copia de seguridad a otra ubicación después de la implementación. La única alternativa es detener totalmente la copia de seguridad y reiniciarla, lo que hace que todas las copias de seguridad anteriores dejen de estar disponibles.
spec.backup.s3Stores.mongodbUserRef.nameTipo: string
Requerido si creaste un recurso de base de datos MongoDB para almacenar metadatos de snapshots de |s3| y si SCRAM está activado en esta base de datos. Nombre del recurso de usuario de MongoDB utilizado para conectarse a la base de datos de metadatos del almacenamiento de snapshot S3. Implemente este recurso de usuario en el mismo namespace que el recurso Ops Manager y con todas las siguientes funciones:
Importante
Una vez especificado, no edite el nombre del nombre de usuario del almacenamiento de snapshot de metadatos de S3.
spec.backup.s3Stores.s3SecretRef.nameTipo: string
Requerido si habilitas la copia de seguridad utilizando un almacén S3 y no estableces
spec.backup.s3Stores.irsaEnabledentrue.Nombre del secreto que contiene los campos
accessKeyysecretKey. El servicio del daemon de copias de seguridad utiliza los valores de estos campos como credenciales para acceder a su AWS S3 o S3-bucket compatible. El almacenamiento de snapshot S3 no se puede configurar si el secreto carece de alguna clave.Si configuras
spec.backup.s3Stores.irsaEnabledcomotrue, no necesitas configurars3SecretRef, porque las credenciales de AWS S3 se montan como variables de entorno del pod.
spec.backup.s3Stores.pathStyleAccessEnabledTipo: booleano
Indica el estilo de la URL del endpoint del bucket.
ValorDescripciónEjemplotrueURL con estilo de ruta
s3.amazonaws.com/<bucket>falseURL con estilo de host virtual
<bucket>.s3.amazonaws.comEl valor por defecto es
true.
spec.backup.s3Stores.s3BucketEndpointTipo: string
Requerido si activas la copia de seguridad con un almacenamiento S3. URL del AWS S3 bucket o S3-compatible bucket que aloja el almacenamiento de snapshot.
Nota
Si el endpoint no incluye una región en su URL, especifica el campo
s3RegionOverride.
spec.backup.s3Stores.s3BucketNameTipo: string
Obligatorio si habilitas copia de seguridad usando un almacén S3. Nombre del depósito AWS S3 o depósito S3compatible que aloja el almacenamiento de snapshot.
spec.backup.s3Stores.s3RegionOverrideTipo: string
La región donde reside el bucket compatible con S3. Utiliza este campo solo si el del almacén S3 no admite el alcance regional.
s3BucketEndpointEl alcance regional ocurre cuando tu endpoint no incluye una región en su URL.No utilices este campo con los cubos AWS S3. Para obtener más información, consulta la Configuración de almacenamiento en bloque de S3.
Configuración requerida de la base de datos de la aplicación
Esta sección describe las configuraciones que debes utilizar además de la configuración requerida de Ops Manager para configurar tu base de datos de la aplicación de Ops Manager.
spec.applicationDatabase.versionTipo: string
Obligatorio. Versión de MongoDB instalada en la base de datos de la aplicación de Ops Manager. Debes especificar una versión compatible de MongoDB empresarial en función de 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
featureCompatibilityVersionbajospec.applicationDatabase.
Configuraciones opcionales de la base de datos de la aplicación
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.applicationDatabasetipo: 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.agent.logLevelTipo: string
por defecto: INFO
Configura el nivel de registro del agente de automatización dentro del Pod. Los valores aceptados incluyen:
DEBUGINFOWARNERRORFATAL
spec.applicationDatabase.agent.<component>.logRotateTipo: Objeto
Reemplaza component con uno de los siguientes valores:
mongodmonitoringAgent
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 establecersystemLog.destinationenfileporque no puedes utilizar la configuración deagent.<component>.logRotatesi 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 volumenemptyDircon un volumen persistente para evitar bloqueos de pods. Para obtener más información, consultespec.statefulSet.spec.template.spec.volumes.
spec.applicationDatabase.agent.mongod.logRotate.numTotalTipo: entero
Por defecto:
0Nú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.numUncompressedTipo: entero
Por defecto:
5Número máximo de entradas de registro totales que deben dejarse sin comprimir, incluida la entrada de registro actual.
spec.applicationDatabase.agent.mongod.logRotate.percentOfDiskspaceTipo: número
Por defecto:
0.02Porcentaje 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.sizeThresholdMBTipo: número
Reemplaza component con uno de los siguientes valores:
mongodmonitoringAgent
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
sizeThresholdMBo en el límite dellogRotate.timeThresholdHrs.
spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrsTipo: entero
Reemplaza component con uno de los siguientes valores:
mongodmonitoringAgent
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
timeThresholdHrso ellogRotate.sizeThresholdMlímite.
spec.applicationDatabase.agent.mongod.auditlogRotateTipo: Objeto
Objeto de configuración de MongoDB para rotar los registros de auditoría de MongoDB de un proceso.
spec.applicationDatabase.agent.mongod.auditlogRotate.numTotalTipo: entero
Por defecto:
0Nú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.auditlogRotateajustes.
spec.applicationDatabase.agent.mongod.auditlogRotate.numUncompressedTipo: entero
Por defecto:
5Nú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.percentOfDiskspaceTipo: número
Por defecto:
0.02Porcentaje 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.sizeThresholdMBTipo: 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
sizeThresholdMBo el límite deauditlogRotate.timeThresholdHrs.
spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrsTipo: 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
timeThresholdHrso el límite deauditlogRotate.sizeThresholdM.
spec.applicationDatabase.agent.startupOptionsTipo: Objeto
Objeto de configuración de MongoDB para opciones de inicio. Consulta Configuraciones del agente MongoDB para conocer los campos disponibles.
spec.applicationDatabase.agent.systemLogTipo: Objeto
Objeto de configuración de MongoDB para configurar las opciones de
systemLog.
spec.applicationDatabase.agent.systemLog.pathTipo: string
Por defecto:
/var/log/mongodb-mms-automation/mongodb.logLa ruta del archivo de registro a la que
mongodomongosdebe 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.pathcambie por defecto. Si usas los paquetes de Linux y cambiassystemLog.path, tendrás que usar tus propios scripts de inicio y desactivar los scripts integrados.
spec.applicationDatabase.agent.systemLog.logAppendTipo: booleano
Por defecto:
falseCuando
true,mongosomongodadjunta nuevas entradas al final de la existente entrada de registro cuando lamongosomongodinstancia se reinicia. Sin esta opción,mongodhará una copia de seguridad del registro existente y creará un nuevo archivo.
spec.applicationDatabase.agent.systemLog.destinationTipo: string
El destino al que MongoDB envía todos los registros de salida. Especifica
fileosyslog. Si especificasfile, también debes especificarsystemLog.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
filepara sistemas de producción y así garantizar marcas de tiempo precisas.
spec.applicationDatabase.externalAccesstipo: colección
Especificación para exponer su clúster a conexiones externas. Para aprender cómo conectarse a su recurso de MongoDB desde fuera del clúster de Kubernetes, consulte Conectase a un recurso de base de datos 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:
CampoValorDescripciónName<pod-name>-svc-externalNombre del Servicio externo. No puedes cambiar este valor.
TypeLoadBalancerCrea un servicio externo LoadBalancer.
Port<Port Number>Un puerto para
mongod.publishNotReadyAddresstrueEspecifica que registros DNS se crean incluso si el Pod no está listo. No configures
falsepara ningún Pod de base de datos.
spec.externalAccess.externalServicetipo: 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 de Kubernetes, consulta ServiceSpec en la documentación de Kubernetes.
spec.externalAccess.externalService.annotationstipo: 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.
ValorDescripción{resourceName}Equal a
metadata.name.{namespace}Equal a
metadata.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 a
{resourceName}.{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. Igual a
spec.externalAccess.externalDomainsi se establece. De lo contrario, igual al dominio utilizado para el procesomongodFQDN.Por ejemplo, para el nombre de host del proceso
mdb-rs-1.example.com,example.comes el nombre de dominio.{mongodProcessFQDN}El
mongodnombre 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.comSi 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.localPor ejemplo:
mdb-rs-1.mdb-rs-1-svc.ns.svc.cluster.localNota
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.spectipo: colección
Configuración para el ServiceSpec. Para obtener más información, consulta
spec.externalAccess.externalService.
spec.applicationDatabase.memberConfigTipo: 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.topologyenMultiCluster, utilicespec.applicationDatabase.clusterSpecList.memberConfigen lugar despec.applicationDatabase.memberConfig. En una implementación de Ops Manager multi-clúster, el operador de Kubernetes ignora todos los parámetros bajospec.applicationDatabase.memberConfig.El número de elementos en la lista
memberConfigdebe ser igual aspec.applicationDatabase.members.El orden de los elementos en la lista
memberConfigdebe 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 índice0, el segundo elemento afecta al índice1y 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.priorityTipo: 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
prioritymás alto.Para disminuir la probabilidad relativa de que un miembro del set de réplicas se convierta en el primario, especifica un valor
prioritymás bajo.
Por ejemplo, un nodo con un
memberConfig.priorityde1.5es más probable que se convierta en primario que un nodo con unmemberConfig.priorityde0.5.Un nodo con un
memberConfig.priorityde0no es elegible para convertirse en el titular primario. Para obtener más información, consulta Prioridad de nodos.
spec.applicationDatabase.memberConfig.tagsTipo: 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.votesTipo: 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
1para permitir que el nodo vote. Configúralo en0para excluir al nodo de una elección.
spec.applicationDatabase.passwordSecretKeyRef.nameTipo: 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.keyTipo: 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.certsSecretPrefixTipo: 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 funcione a través de HTTPS, consulte Desplegar un recurso de Ops Manager.
spec.applicationDatabase.security.tls.caTipo: 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.caes necesario si usas un CA personalizado para firmar los certificados TLS de tu base de datos de la aplicación.El operador de Kubernetes requiere que se nombre el certificado de la base de datos de la aplicación como
ca-pemen el ConfigMap.La CA especificada en esta sección también se utiliza para configurar certificados personalizados TLS para el almacenamiento S3 cuando se establecen
spec.backup.s3OpLogStores.customCertificateospec.backup.s3Stores.customCertificateentrue.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
Debes concatenar tu archivo CA personalizado y toda la cadena de certificados TLS desde
downloads.mongodb.compara evitar que Ops Manager quede inoperativo si la base de datos de la aplicación se reinicia.
spec.applicationDatabase.security.tls.enabledImportante
spec.security.applicationDatabase.tls.enabledestá obsoleto y se eliminará en una versión futura. Para activar TLS, proporcione un valor para la configuración despec.security.applicationDatabase.certsSecretPrefix.Cifra las comunicaciones utilizando certificados TLS entre Ops Manager y la base de datos de la aplicación.
Configuraciones de Prometheus
La configuración siguiente se aplica cuando utilizas Prometheus con tu base de datos de la aplicación:
spec.applicationDatabase.prometheusTipo: arreglo
opcional. Lista que contiene los parámetros para exponer métricas a Prometheus.
spec.applicationDatabase.prometheus.metricsPathTipo: 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.passwordSecretRefTipo: 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.keyTipo: 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.nameTipo: 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.portTipo: 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.tlseSecretKeyRefTipo: Objeto
opcional. Objeto que contiene los detalles del secreto para la autenticación TLS.
spec.applicationDatabase.prometheus.tlseSecretKeyRef.keyTipo: 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.nameTipo: 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.
Configuraciones de Multi-Clúster
Configuraciones requeridas de Ops Manager
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.membersTipo: 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.topologyaMultiCluster, 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.topologyTipo: string
El tipo de implementación de Kubernetes para el recurso de Ops Manager.
Los valores son
SingleClusteroMultiCluster. Si se omite, el valor por defecto esSingleCluster.Si especificas
MultiCluster:Añadir el recurso
MongoDBMultiClustera la lista de recursos supervisados. Esto indica al operador de Kubernetes que debe trabajar en modo multiclúster de Kubernetes y realizar las acciones de configuración necesarias para gestionar recursos multi-Kubernetes.Especifique al menos un clúster nodo en el que quiera implementar Ops Manager, utilizando
spec.clusterSpecListy sus parámetros anidadosspec.clusterSpecList.clusterNameyspec.clusterSpecList.members.Si especifica
MultiCluster, el Operador de Kubernetes ignora cualquier valor que configure paraspec.members. Consulta el ejemplo de la especificación de recursos.
Configuraciones opcionales de Ops Manager
Los recursos de Ops Manager también pueden utilizar los siguientes ajustes específicos para implementaciones de Ops Manager en varios clústeres:
spec.clusterSpecListtipo: 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.
Cuando se ajusta
spec.topologyaMultiCluster, se debe especificar el valor despec.clusterSpecList.members. Todos los demás parámetros bajospec.clusterSpecListson opcionales.Cuando se establece
spec.topologyenSingleCluster, el Operador de Kubernetes ignora todos los parámetros bajospec.clusterSpecList.
spec.clusterSpecList.clusterNameTipo: 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.clusterDomainTipo: string
opcional. Una anulación para
spec.clusterDomainpara el clúster nodo específico de Ops Manager. Si omites este valor, se establece por defecto en el valor configurado enspec.clusterDomain. Kubernetes asigna a cada Pod un FQDN. El Operador de Kubernetes calcula el FQDN de cada Pod usando un valor proporcionado declusterDomain. Kubernetes no proporciona una API para query estos nombres de host.
spec.clusterSpecList.configurationtipo: colección
opcional. Propiedades de configuración de Ops Manager que anulan las propiedades establecidas en
spec.configurationpara 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 tipostring. 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.jvmParametersTipo: arreglo de cadenas
opcional. Parámetros de JVM pasados a las instancias de Ops Manager y al daemon de copias de seguridad para este clúster nodo.
Si especifica este parámetro, sus valores anularán los valores especificados en
spec.jvmParameters. Para los valores de ejemplo, consulta el ejemplo de la especificación del recurso.Si omite este parámetro, se utilizarán valores de
spec.jvmParameterspara las instancias de Ops Manager y daemon de copias de seguridad en este clúster de nodos.
spec.clusterSpecList.externalConnectivitytipo: 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.externalConnectivitypara 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.externalConnectivityvalores para este nodo del clúster de Ops Manager.El Operador de Kubernetes crea un servicio de Kubernetes llamado
<om-name>-svc-ext, que permite que el tráfico que se origina fuera del clúster de Kubernetes llegue a la aplicación Ops Manager en este clúster nodo.
Si omites este parámetro, el Operador de Kubernetes utiliza los valores de
spec.externalConnectivitypara este clúster nodo.
spec.clusterSpecList.statefulSet.spectipo: colección
opcional. Especificación para el StatefulSet que crean los controladores de MongoDB para Kubernetes operador para un clúster nodo específico en la implementación multi-Kubernetes de Ops Manager. Este parámetro es una sobrescritura de
spec.statefulSet.spec. Si lo omites, el operador de Kubernetes utiliza los valores despec.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 en múltiples clústeres de Kubernetes.Para revisar qué campos se pueden agregar a
spec.clusterSpecList.statefulSet.spec, consulte StatefulSetSpec v1 aplicaciones en la documentación de Kubernetes.
spec.clusterSpecList[*].backupopcional. Configuración de copias de seguridad que anula los valores especificados en
spec.backuppara ese clúster miembro en particular.Puedes establecer estos valores solo si
spec.backup.enabledestá configurado entrue.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:externalServiceEnabledheadDBopLogStoresblockStoress3StoresfileSystemStoresqueryableBackupSecretRefencryption
spec.clusterSpecList[*].backup.membersTipo: 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 de0, el operador de Kubernetes no implementará instancias de daemon de copias de seguridad en un clúster de nodos en particular.
spec.clusterSpecList[*].backup.assignmentLabelsTipo: 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 enspec.backup.assignmentLabelspara todas las instancias daemon de copias de seguridad en un clúster nodo.
spec.clusterSpecList[*].backup.jvmParametersTipo: arreglo de cadenas
opcional. Anular para
spec.backup.jvmParameters. Le permite personalizar el valor de JVM para las instancias de daemon de copias de seguridad en un clúster de nodos específico.
spec.clusterSpecList[*].backup.statefulSetTipo: string
opcional. Anulación para
spec.backup.statefulSet.spec. Te permite personalizar los valores de un daemon de copias de seguridad en un clúster nodo específico. Para revisar qué campos puedes añadir aspec.clusterSpecList[*].backup.statefulSet, consulta StatefulSetSpec v1 aplicaciones en la documentación de Kubernetes.
Configuración requerida de la base de datos de la aplicación
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.clusterSpecListtipo: 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.clusterNameTipo: 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
topologyy losclusterSpecListajustes en el CRD.
spec.applicationDatabase.clusterSpecList.membersTipo: 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.topologyTipo: string
El tipo de implementación de Kubernetes para la base de datos de la aplicación.
Los valores son
SingleClusteroMultiCluster. Si se omite, el valor por defecto esSingleCluster.Si especifica
MultiCluster, debe especificar al menos un nodoclú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 campospec.applicationDatabase.members.
Para obtener más información, consulta el ejemplo de la especificación del recurso multidistribuido.
Configuraciones opcionales de la base de datos de la aplicación
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.externalAccessTipo: string
Un dominio externo utilizado para exponer externamente su implementación de set de réplicas.
Por defecto, cada miembro del set de réplicas utiliza el FQDN del Pod de Kubernetes (
*.svc.cluster.local) como hostname por defecto. Sin embargo, si agregas un dominio externo a esta configuración, el set de réplicas utiliza un nombre de host que es un subdominio del dominio especificado en su lugar. 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.comImportante
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.memberConfigTipo: 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.topologyaSingleCluster, utilizaspec.applicationDatabase.memberConfigen lugar despec.applicationDatabase.clusterSpecList.memberConfig.El número de elementos en la lista
memberConfigdebe ser igual aspec.applicationDatabase.clusterSpecList.members.El orden de los elementos en la lista
memberConfigdebe 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 índice0, el segundo elemento afecta al índice1y 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.priorityTipo: 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
prioritymás alto.Para disminuir la probabilidad relativa de que un miembro del set de réplicas se convierta en el primario, especifica un valor
prioritymás bajo.
Por ejemplo, un nodo con un
memberConfig.priorityde1.5es más probable que se convierta en primario que un nodo con unmemberConfig.priorityde0.5.Un nodo con un
memberConfig.priorityde0no es elegible para convertirse en el titular primario. Para obtener más información, consulta Prioridad de nodos.
spec.applicationDatabase.clusterSpecList.memberConfig.tagsTipo: 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.votesTipo: 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
1para permitir que el nodo vote. Configúralo en0para excluir al nodo de una elección.