Docs Menu
Docs Home
/ /
/ / /

Implementar un recurso de Ops Manager

Puede implementar Ops Manager como un recurso en un contenedor de Kubernetes utilizando el Operador de Kubernetes.

Se aplican las siguientes consideraciones:

Cuando configura su implementación de Ops Manager, debe elegir si desea ejecutar conexiones a través de HTTPS o HTTP.

El siguiente procedimiento HTTPS:

  • Establece conexiones cifradas con TLShacia/desde la aplicación Ops Manager.

  • Establece conexiones cifradas TLSentre los miembros del set de réplicas de la base de datos de la aplicación.

  • Requiere certificados válidos para el cifrado TLS.

El siguiente procedimiento HTTP:

  • No cifra las conexiones hacia o desde la aplicación Ops Manager.

  • No cifra las conexiones entre los miembros del conjunto de réplicas de la base de datos de la aplicación.

  • Tiene menos requisitos de configuración.

Cuando se ejecuta a través de HTTPS, Ops Manager se ejecuta en el puerto 8443 por defecto.

Seleccione la pestaña adecuada según si desea cifrar las conexiones de Ops Manager y de la base de datos de la aplicación con TLS.

  • Completa los requisitos previos.

  • Lee las Consideraciones.

  • Crear un certificado TLS para el set de réplicas de la base de datos de la aplicación.

    Este certificado TLS requiere los siguientes atributos:

    Nombres DNS

    Asegúrese de agregar SANo nombres de sujeto para cada pod que aloje un miembro del conjunto de réplicas de la base de datos de la aplicación. El SAN de cada pod debe usar el siguiente formato:

    <opsmgr-metadata.name>-db-<index>.<opsmgr-metadata.name>-db-svc.<namespace>.svc.cluster.local

    Usos clave

    Asegúrese de que los certificados TLS incluyan los siguientes usos de clave 5280 ():

    • "autenticación del servidor"

    • "autenticación de cliente"

Importante

El operador de Kubernetes utiliza kubernetes.io/tls secretos para almacenar TLS certificados y llaves privadas para Ops Manager y recursos de MongoDB. A partir de la versión 1.17.0 del operador de Kubernetes, el operador de Kubernetes no admite archivos PEM concatenados almacenados como secretos opacos.

Antes de implementar un recurso de Ops Manager, asegúrese de planificar su recurso de Ops Manager:

Este procedimiento se aplica a la implementación de una instancia de Ops Manager en un único clúster de Kubernetes y a la implementación de Ops Manager en un clúster de operador en una implementación multiclúster. Si desea implementar varias instancias de Ops Manager en varios clústeres de Kubernetes, consulte Implementar recursos de Ops Manager en varios clústeres de Kubernetes.

Siga estos pasos para implementar el recurso Ops Manager para que se ejecute mediante HTTPS y proteja la base de datos de la aplicación mediante TLS.

1

Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los kubectl comandos en el espacio de nombres que creó.

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple:

  • Establezca context en el nombre del clúster del operador, como por ejemplo: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Establezca --namespace en el mismo ámbito que utilizó para su implementación de MongoDB en un clúster de Kubernetes múltiple, como porkubectl config --namespace "mongodb" ejemplo:.

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

Si utilizas HashiCorp Vault como tu herramienta de almacenamiento secreto, puedes crear un secreto de Vault en su lugar.

Para conocer más sobre sus opciones de almacenamiento secreto,consulte Configurar almacenamiento secreto.

  1. Una vez que tenga sus certificados TLS y claves privadas, ejecute el siguiente comando para crear un secreto que almacene el certificado TLS de Ops Manager:

    kubectl create secret tls <prefix>-<metadata.name>-cert \
    --cert=<om-tls-cert> \
    --key=<om-tls-key>
  2. Ejecute el siguiente comando para crear un nuevo secreto que almacene el certificado TLS de la base de datos de la aplicación:

    kubectl create secret tls <prefix>-<metadata.name>-db-cert \
    --cert=<appdb-tls-cert> \
    --key=<appdb-tls-key>
3

Si su certificado TLS de Ops Manager está firmado por una CA personalizada, este certificado también debe contener certificados adicionales que permitan al Daemon de Copia de Seguridad de Ops Manager descargar binarios de MongoDB de internet. Para crear los certificados TLS, cree un ConfigMap que contenga el certificado de la CA:

Importante

El operador de Kubernetes requiere que su certificado de Ops Manager se llame mms-ca.crt en ConfigMap.

  1. Obtenga la cadena completa de certificados TLS para Ops Manager downloads.mongodb.com desde. El siguiente openssl comando envía el certificado de la cadena a su directorio de trabajo actual, en .crt formato:

    openssl s_client -showcerts -verify 2 \
    -connect downloads.mongodb.com:443 -servername downloads.mongodb.com < /dev/null \
    | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}'
  2. Concatena el archivo de certificado de la CA para Ops Manager con toda la cadena de certificados TLS de downloads.mongodb.com que se obtuvo en el paso anterior:

    cat <custom_ca_cert.pem> cert2.crt cert3.crt cert4.crt >> mms-ca.crt

Nota

  • Reemplace el marcador de posición <custom_ca_cert.pem> con su archivo PEM de certificado CA personalizado.

  • No incluya su archivo cert1.crt, ya que es su certificado de servidor de MongoDB el que no debe incluirse.

  1. Cree el ConfigMap para Ops Manager:

    kubectl create configmap om-http-cert-ca --from-file="mms-ca.crt"
4

Cambie la configuración para que coincida con su Ops Manager y la configuración de la base de datos de la aplicación.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the Kubernetes secret
11 # for the admin user
12
13 externalConnectivity:
14 type: LoadBalancer
15 security:
16 certsSecretPrefix: <prefix> # Required. Text to prefix
17 # the name of the secret that contains
18 # Ops Manager's TLS certificate.
19 tls:
20 ca: "om-http-cert-ca" # Optional. Name of the ConfigMap file
21 # containing the certificate authority that
22 # signs the certificates used by the Ops
23 # Manager custom resource.
24
25 applicationDatabase:
26 topology: SingleCluster
27 members: 3
28 version: "8.0.0-ubi8"
29 security:
30 certsSecretPrefix: <prefix> # Required. Text to prefix to the
31 # name of the secret that contains the Application
32 # Database's TLS certificate. Name the secret
33 # <prefix>-<metadata.name>-db-cert.
34 tls:
35 ca: "appdb-ca" # Optional, unless enabling TLS for |mms|.
36 # Name of the ConfigMap file
37 # containing the certicate authority that
38 # signs the certificates used by the
39 # application database.
40
41...
1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the Kubernetes secret
11 # for the admin user
12
13 externalConnectivity:
14 type: LoadBalancer
15 security:
16 certsSecretPrefix: <prefix> # Required. Text to prefix
17 # the name of the secret that contains
18 # Ops Manager's TLS certificate.
19 tls:
20 ca: "om-http-cert-ca" # Optional. Name of the ConfigMap file
21 # containing the certificate authority that
22 # signs the certificates used by the Ops
23 # Manager custom resource.
24
25 applicationDatabase:
26 topology: MultiCluster
27 clusterSpecList:
28 - clusterName: cluster1.example.com
29 members: 4
30 - clusterName: cluster2.example.com
31 members: 3
32 - clusterName: cluster3.example.com
33 members: 2
34 version: "8.0.0-ubi8"
35 security:
36 certsSecretPrefix: <prefix> # Required. Text to prefix to the
37 # name of the secret that contains the Application
38 # Database's TLS certificate. Name the secret
39 # <prefix>-<metadata.name>-db-cert.
40 tls:
41 ca: "appdb-ca" # Optional, unless enabling TLS for |mms|.
42 # Name of the ConfigMap file
43 # containing the certicate authority that
44 # signs the certificates used by the
45 # application database.
46
47...
5
6
Clave
Tipo
Descripción
Ejemplo

string

Nombre de este objeto de Kubernetes Ops Manager.

Los nombres de recursos deben tener 44 caracteres o menos.

Consulta también metadata.name y la documentación de Kubernetes sobre nombres.

om

Número

Número de instancias de Ops Manager que se ejecutarán en paralelo.

El valor mínimo válido 1 es. Este campo se ignora si se especifica MultiCluster en la spec.topology configuración.

1

string

Versión de Ops Manager a instalar.

El formato debe ser X.Y.Z. Para ver las versiones disponibles de Ops Manager, consulta el registro de contenedores.

8.0.0

string

Nombre del secreto que creó para el usuario administrador de Ops Manager. Configure el secreto para que use el mismo espacio de nombres que el recurso de Ops Manager.

om-admin-secret

spec
.security

string

Requerido.

Texto que se agregará como prefijo al nombre del secreto que contiene los certificados TLS de Ops Managers.

om-prod

spec
.security
.tls

string

Nombre del ConfigMap que creó para verificar sus certificados TLS de Ops Manager firmados con una CA personalizada. Este campo es obligatorio si firmó sus certificados TLS de Ops Manager con una CA personalizada.

om-http-cert-ca

spec
.externalConnectivity

string

El ServiceType del servicio de Kubernetes que expone Ops Manager fuera de Kubernetes. Excluya la spec.externalConnectivity configuración y sus elementos secundarios si no desea que el operador de Kubernetes cree un servicio de Kubernetes para enrutar el tráfico externo a la aplicación Ops Manager.

LoadBalancer

spec
.applicationDatabase

entero

Número de miembros del conjunto de réplicas de la base de datos de la aplicación Ops Manager.

3

spec
.applicationDatabase

string

Requerido.

Versión de MongoDB que debe ejecutar la base de datos de la aplicación Ops Manager.

El formato debe ser X.Y.Z-ubi8 para la edición Enterprise y X.Y.Z para la edición Community. No agregue el -ubi8 sufijo de etiqueta a la imagen de la edición Community, ya que el operador de Kubernetes lo agrega automáticamente.

IMPORTANTE: Asegúrese de elegir una versión compatible de MongoDB Server. Las versiones compatibles varían según la imagen base que utilice el recurso de base de datos MongoDB.

Para obtener más información sobre el versionado de MongoDB, consulta versionado de MongoDB en el manual de MongoDB.

Para obtener mejores resultados, utilice la última versión disponible de MongoDB empresarial que sea compatible con su versión de Ops Manager.

spec
.applicationDatabase

string

Opcional.

El tipo de implementación de Kubernetes para la base de datos de la aplicación. Si se omite, el valor predeterminado es SingleCluster.

Si MultiCluster especifica, el operador de Kubernetes ignora los valores que configure para el spec.applicationDatabase.members campo, si se especifica. En su lugar, debe especificar clusterSpecList e incluir en él el clusterName de cada clúster miembro de Kubernetes seleccionado donde desee implementar la base de datos de la aplicación, así como el número de members (nodos MongoDB) en cada clúster de Kubernetes.

No se puede convertir una única instancia de Ops Manager en un clúster de múltiples Kubernetes en una instancia de implementación de MongoDB modificando topology las clusterSpecList configuraciones y en el CRD.

Véase también el ejemplo de la especificación de recursos.

MultiCluster

spec
.applicationDatabase
.security

string

Requerido.

Texto que se agregará como prefijo al nombre del secreto que contiene los certificados TLS de la base de datos de la aplicación.

appdb-prod

spec
.applicationDatabase
.security
.tls

string

Nombre del ConfigMap que creó para verificar los certificados TLS de la base de datos de su aplicación, firmados con una CA personalizada. Este campo es obligatorio si firmó los certificados TLS de la base de datos de su aplicación con una CA personalizada.

ca

El operador de Kubernetes monta la CA que agrega usando la spec.applicationDatabase.security.tls.ca configuración tanto en el Administrador de operaciones como en los pods de la base de datos de la aplicación.

7

Para configurar la copia de seguridad, debes habilitarla y luego:

  • Elija configurar un almacén de instantáneas S3 o un almacén de bloques. Si implementa tanto un almacén de instantáneas S3como un almacén de bloques, Ops Manager elige aleatoriamente uno para la copia de seguridad.

  • Elija configurar un almacén de registros de operaciones o un 3 almacén de registros de operaciones S. Si implementa tanto un almacén de registros de operaciones como uno 3 S, Ops Manager seleccionará aleatoriamente uno de ellos para la copia de seguridad de registros de operaciones.

Clave
Tipo
Descripción
Ejemplo
spec
.backup

booleano

Marca que indica que la copia de seguridad está habilitada. Debe especificar spec.backup.enabled: true para configurar la base de datos principal, el almacén de registros de operaciones y el almacén de instantáneas.

true

spec
.backup
.headDB

Colección

Conjunto de opciones de configuración para la base de datos principal. Para obtener descripciones de cada opción de la colección,spec.backup.headDB consulte.

spec
.backup
.opLogStores

string

Nombre del almacén de oplog.

oplog1

spec
.backup
.s3OpLogStores

string

Nombre del almacén de registros de operaciones S.3

my-s3-oplog-store

spec
.backup
.opLogStores
.mongodbResourceRef

string

Nombre del recurso MongoDB o MongoDBMultiCluster para el almacén de registros de operaciones. El metadata.name del recurso debe coincidir con este nombre.

my-oplog-db

spec
.backup
.s3OpLogStores
.mongodbResourceRef

string

Nombre del MongoDB recurso o MongoDBMultiCluster para el almacén de3 registros de operaciones S. El del recurso metadata.name debe coincidir con este nombre.

my-s3-oplog-db

También debe configurar un almacén de instantáneas S3 o un almacén de bloques.

Si implementa un almacén de instantáneas S3 y un almacén de bloques, Ops Manager elige aleatoriamente uno para utilizarlo como respaldo.

Para configurar un almacén de instantáneas, configure los siguientes ajustes:

Clave
Tipo
Descripción
Ejemplo
spec
.backup
.s3Stores

string

Nombre del almacén de instantáneas S.3

s3store1

spec
.backup
.s3Stores
.s3SecretRef

string

Nombre del secreto que contiene los accessKey secretKey campos y. El servicio de demonio de copia de seguridad utiliza los valores de estos campos como credenciales para acceder al depósito compatible con3 S3o S.

my-s3-credentials

spec
.backup
.s3Stores

string

URL del bucket S3 o S3-compatible que almacena las snapshots de copia de seguridad de la base de datos.

s3.us-east-1.amazonaws.com

spec
.backup
.s3Stores

string

Nombre del depósito compatible con S3 o S que almacena las instantáneas de respaldo de la base de datos.3

my-bucket

Para configurar un almacén de bloques, configure los siguientes ajustes:

Clave
Tipo
Descripción
Ejemplo
spec
.backup
.blockStores

string

Nombre del almacén de bloques.

blockStore1

spec
.backup
.blockStores
.mongodbResourceRef

string

Nombre del recurso de MongoDB que creas para el almacenamiento en bloques. Debe implementar este recurso de base de datos en el mismo namespace que el recurso de Ops Manager.

my-mongodb-blockstore

8

Agregue al archivo de especificación de objetos cualquier configuración opcional para las copias de seguridad que desee aplicar a su implementación. Por ejemplo, para cada tipo de almacén de copias de seguridad y para los procesos del demonio de copias de seguridad de Ops Manager, puede asignar etiquetas para asociar almacenes de copias de seguridad o procesos del demonio de copias de seguridad específicos con proyectos específicos. Utilice spec.backup.[*].assignmentLabels los elementos de los recursos de OpsManager.

9

Agregue cualquier configuración opcional que desee aplicar a su implementación al archivo de especificación de objeto.

10
11

Ejecute el siguiente comando kubectl en el nombre de archivo de la definición de recurso de Ops Manager:

kubectl apply -f <opsmgr-resource>.yaml

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple, ejecute:

kubectl apply \
--context "$MDB_CENTRAL_CLUSTER_FULL_NAME" \
--namespace "mongodb"
-f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
12

Para comprobar el estado de su recurso Ops Manager, invoque el siguiente comando:

kubectl get om -o yaml -w

El comando devuelve una salida similar a la siguiente en el campo status mientras se implementa el recurso:

status:
applicationDatabase:
lastTransition: "2022-04-01T09:49:22Z"
message: AppDB Statefulset is not ready yet
phase: Pending
type: ""
version: ""
backup:
phase: ""
opsManager:
phase: ""

El operador de Kubernetes concilia los recursos en el siguiente orden:

  1. Base de datos de la aplicación.

  2. Gerente de operaciones.

  3. Apoyo.

El operador de Kubernetes no reconcilia un recurso hasta que el anterior entre en la fase Running.

Una vez que el recurso Ops Manager completa la fase Pending, el comando devuelve un resultado similar al siguiente en el campo status si habilitó la Copia de seguridad:

status:
applicationDatabase:
lastTransition: "2022-04-01T09:50:20Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T09:57:42Z"
message: The MongoDB object <namespace>/<oplogresourcename>
doesn't exist
phase: Pending
opsManager:
lastTransition: "2023-04-01T09:57:40Z"
phase: Running
replicas: 1
url: https://om-svc.cloudqa.svc.cluster.local:8443
version: "8.0.0"

La copia de seguridad permanece en un estado Pending hasta que configure las bases de datos de copia de seguridad.

Tip

El campo status.opsManager.url indica la URL de la conexión del recurso. Usando esta URL, puedes acceder a Ops Manager desde dentro del clúster de Kubernetes o crear un proyecto usando un ConfigMap.

Una vez que el recurso completa la fase Pending, el comando devuelve una salida similar a la siguiente en el campo status:

status:
applicationDatabase:
lastTransition: "2022-12-06T18:23:22Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T18:23:26Z"
message: The MongoDB object namespace/oplogdbname doesn't exist
phase: Pending
url: https://om-svc.dev.svc.cluster.local:8443
version: ""

La copia de seguridad permanece en un estado Pending hasta que configure las bases de datos de copia de seguridad.

Tip

El campo status.opsManager.url indica la URL de la conexión del recurso. Usando esta URL, puedes acceder a Ops Manager desde dentro del clúster de Kubernetes o crear un proyecto usando un ConfigMap.

13

Los pasos a seguir varían según cómo se enrute el tráfico a la aplicación Ops Manager en Kubernetes. Si configuró el operador de Kubernetes para que creara un servicio de Kubernetes automáticamente o si lo creó manualmente, utilice uno de los siguientes métodos para acceder a la aplicación Ops Manager:

  1. Consulta con tu proveedor de nube para obtener el FQDN del servicio de balanceo de carga. Consulta la documentación de tu proveedor para obtener más información.

  2. Abra una ventana del navegador y navegue hasta la aplicación Ops Manager usando el FQDN y el número de puerto de su servicio de balanceador de carga.

    https://ops.example.com:8443
  3. Inicie sesión en Ops Manager utilizando las credenciales de usuario administrador.

  1. Configure sus reglas de firewall para permitir el acceso desde Internet al spec.externalConnectivity.port en el host en el que se ejecuta su clúster de Kubernetes.

  2. Abre una ventana del navegador y navega hasta la aplicación Ops Manager utilizando el FQDN y el spec.externalConnectivity.port.

    https://ops.example.com:30036
  3. Inicie sesión en Ops Manager utilizando las credenciales de usuario administrador.

Para saber cómo acceder a la aplicación Ops Manager mediante un servicio de terceros, consulte la documentación de su solución.

14

Para configurar las credenciales, debe crear una organización de Ops Manager, generar claves de API programáticas y crear un secreto. Estas actividades siguen los requisitos previos y el procedimiento descritos en la página "Crear credenciales para el operador de Kubernetes".

15

Para crear un proyecto, siga los requisitos previos y el procedimiento de la página Crear un proyecto por implementación de MongoDB usando un ConfigMap.

Establezca los siguientes campos en el ConfigMap de su proyecto:

  • Establezca data.baseUrl en el ConfigMap como la URL de la aplicación Ops Manager. Para encontrar esta URL, ejecute el siguiente comando:

    kubectl get om -o yaml -w

    El comando devuelve la URL de la aplicación Ops Manager en el campo status.opsManager.url, similar al siguiente ejemplo:

    status:
    applicationDatabase:
    lastTransition: "2022-12-06T18:23:22Z"
    members: 3
    phase: Running
    type: ReplicaSet
    version: "8.0.0-ubi8"
    opsManager:
    lastTransition: "2022-12-06T18:23:26Z"
    message: The MongoDB object namespace/oplogdbname doesn't exist
    phase: Pending
    url: https://om-svc.dev.svc.cluster.local:8443
    version: ""

    Importante

    Si implementa Ops Manager con el operador de Kubernetes y Ops Manager administrará los recursos de la base de datos MongoDB implementados fuera del clúster de Kubernetes en el que está implementado, debe establecer data.baseUrl con el mismo valor de la spec.configuration.mms.centralUrl configuración en la especificación de recursos de Ops Manager.

    Para obtener más información,consulte Administrar implementaciones externas de MongoDB.

  • Establezca data.sslMMSCAConfigMap con el nombre de su ConfigMap que contiene el certificado de CA raíz utilizado para firmar el certificado del host de Ops Manager. El operador de Kubernetes requiere que el certificado de este recurso de Ops Manager se nombre mms-ca.crt en el ConfigMap.

16

De forma predeterminada, Ops Manager habilita la copia de seguridad. Cree un recurso de base de datos MongoDB para los almacenes de registros de operaciones e instantáneas para completar la configuración.

  1. Implemente un recurso de base de datos MongoDB para el almacén de registros de operaciones en el mismo espacio de nombres que el recurso Ops Manager.

    Nota

    Cree esta base de datos como un conjunto de réplicas de tres miembros.

    Haga coincidir el metadata.name del recurso con el spec.backup.opLogStores.mongodbResourceRef.name que especificó en la definición de recurso de Ops Manager.

  2. Implementar un recurso de base de datos MongoDB para el almacenamiento de snapshot S3 en el mismo namespace que el recurso Ops Manager.

    Nota

    Cree el almacén de instantáneas S como un conjunto de réplicas.3

    Haga coincidir el metadata.name del recurso con el spec.backup.s3Stores.mongodbResourceRef.name que especificó en la definición de recurso de Ops Manager.

17

Para comprobar el estado de su recurso Ops Manager, invoque el siguiente comando:

kubectl get om -o yaml -w

Cuando se ejecuta Ops Manager, el comando devuelve una salida similar a la siguiente, debajo del campo status:

status:
applicationDatabase:
lastTransition: "2022-12-06T17:46:15Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T17:46:32Z"
phase: Running
replicas: 1
url: https://om-backup-svc.dev.svc.cluster.local:8443
version: "8.0.0"

Consulte Solucionar problemas del operador de Kubernetes para obtener información sobre los estados de implementación de recursos.

Sigue estos pasos para implementar el recurso Ops Manager para que ejecute sobre HTTP:

1

Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los kubectl comandos en el espacio de nombres que creó.

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple:

  • Establezca context en el nombre del clúster del operador, como por ejemplo: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Establezca --namespace en el mismo ámbito que utilizó para su implementación de MongoDB en un clúster de Kubernetes múltiple, como porkubectl config --namespace "mongodb" ejemplo:.

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

Cambie la configuración para que coincida con su configuración de Ops Manager.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the secret
11 # for the admin user
12 externalConnectivity:
13 type: LoadBalancer
14
15 applicationDatabase:
16 topology: SingleCluster
17 members: 3
18 version: <mongodbversion>
19...
1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the Kubernetes secret
11 # for the admin user
12
13 externalConnectivity:
14 type: LoadBalancer
15
16 applicationDatabase:
17 topology: MultiCluster
18 clusterSpecList:
19 - clusterName: cluster1.example.com
20 members: 4
21 - clusterName: cluster2.example.com
22 members: 3
23 - clusterName: cluster3.example.com
24 members: 2
25 version: "8.0.0-ubi8"
26
27...
3
4
Clave
Tipo
Descripción
Ejemplo

string

Nombre de este objeto de Kubernetes Ops Manager.

Los nombres de recursos deben tener 44 caracteres o menos.

Para obtener más información, consulte y la documentación de Kubernetes metadata.name sobre nombres.

om

Número

Número de instancias de Ops Manager que se ejecutarán en paralelo.

El valor mínimo válido 1 es. Este campo se ignora si se especifica MultiCluster en la spec.topology configuración.

1

string

Versión de Ops Manager a instalar.

El formato debe ser XYZ. Para ver la lista de versiones disponibles de Ops Manager, consulte el registrode contenedores.

8.0.0

string

Nombre del secreto que creó para el usuario administrador de Ops Manager.

Configure el secreto para utilizar el mismo espacio de nombres que el recurso Ops Manager.

om-admin-secret

spec
.externalConnectivity

string

Opcional.

El tipo de servicio del servicio Kubernetes que expone Ops Manager fuera de Kubernetes.

Excluye la configuración spec.externalConnectivity y sus hijos si no deseas que el Operador de Kubernetes cree un servicio de Kubernetes para dirigir tráfico externo a la aplicación Ops Manager.

LoadBalancer

spec
.applicationDatabase

entero

Número de miembros del conjunto de réplicas de la base de datos de la aplicación Ops Manager.

3

spec
.applicationDatabase

string

Requerido.

Versión de MongoDB que debe ejecutar la base de datos de la aplicación Ops Manager.

El formato debe ser X.Y.Z para la edición Community y X.Y.Z-ubi8 para la edición Enterprise.

IMPORTANTE: Asegúrese de elegir una versión compatible de MongoDB Server. Las versiones compatibles varían según la imagen base que utilice el recurso de base de datos MongoDB.

Para obtener más información sobre el versionado de MongoDB, consulta versionado de MongoDB en el manual de MongoDB.

Para obtener mejores resultados, utilice la última versión disponible de MongoDB empresarial que sea compatible con su versión de Ops Manager.

spec
.applicationDatabase

string

Opcional.

El tipo de implementación de Kubernetes para la base de datos de la aplicación. Si se omite, el valor predeterminado es SingleCluster.

Si MultiCluster especifica, el operador de Kubernetes ignora los valores que configure para el campo, si spec.applicationDatabase.members se especifica.

En su lugar, debe especificar el clusterSpecList e incluir en él el clusterName de cada clúster miembro de Kubernetes seleccionado en el que desea implementar la base de datos de la aplicación, y la cantidad de members (nodos MongoDB) en cada clúster de Kubernetes.

No se puede convertir una única instancia de Ops Manager en un clúster de múltiples Kubernetes en una instancia de implementación de MongoDB modificando topology las clusterSpecList configuraciones y en el CRD.

Véase también el ejemplo de la especificación de recursos.

MultiCluster

5

Para configurar la copia de seguridad, debes habilitarla y luego:

  • Elija configurar un almacén de instantáneas S3 o un almacén de bloques. Si implementa tanto un almacén de instantáneas S3como un almacén de bloques, Ops Manager elige aleatoriamente uno para la copia de seguridad.

  • Elija configurar un almacén de registros de operaciones o un 3 almacén de registros de operaciones S. Si implementa tanto un almacén de registros de operaciones como uno 3 S, Ops Manager seleccionará aleatoriamente uno de ellos para la copia de seguridad de registros de operaciones.

Clave
Tipo
Descripción
Ejemplo
spec
.backup

booleano

Marca que indica que la copia de seguridad está habilitada. Debe especificar spec.backup.enabled: true para configurar la base de datos principal, el almacén de registros de operaciones, el almacén de registros de operacionesS y el almacén de instantáneas.3

true

spec
.backup
.headDB

Colección

Conjunto de opciones de configuración para la base de datos principal. Para obtener descripciones de cada opción de la colección,spec.backup.headDB consulte.

spec
.backup
.opLogStores

string

Nombre del almacén de oplog.

oplog1

spec
.backup
.s3OpLogStores

string

Nombre del almacén de registros de operaciones S.3

my-s3-oplog-store

spec
.backup
.opLogStores
.mongodbResourceRef

string

Nombre del recurso MongoDB o MongoDBMultiCluster para el almacén de registros de operaciones. El metadata.name del recurso debe coincidir con este nombre.

my-oplog-db

spec
.backup
.s3OpLogStores
.mongodbResourceRef

string

Nombre del recurso de base de datos MongoDB para el almacén de3 registros de operaciones S.

my-s3-oplog-db

También debe configurar un almacén de instantáneas S3 o un almacén de bloques. Si implementa tanto un almacén de instantáneas S3como un almacén de bloques, Ops Manager elige aleatoriamente uno para la copia de seguridad.

Para configurar un 3 almacén de instantáneas S, configure los siguientes ajustes:

Clave
Tipo
Descripción
Ejemplo
spec
.backup
.s3Stores

string

Nombre del almacén de instantáneas S.3

s3store1

spec
.backup
.s3Stores
.s3SecretRef

string

Nombre del secreto que contiene los accessKey secretKey campos y. El servicio de demonio de copia de seguridad utiliza los valores de estos campos como credenciales para acceder al depósito compatible con3 S3o S.

my-s3-credentials

spec
.backup
.s3Stores

string

URL del depósito compatible con S3 o S3 que almacena las instantáneas de respaldo de la base de datos.

s3.us-east-1.amazonaws.com

spec
.backup
.s3Stores

string

Nombre del depósito compatible con S3 o S que almacena las instantáneas de copia de seguridad de la base de datos.3

my-bucket

spec
.backup
.s3Stores

string

Región donde 3reside su bucket compatible con S. Use este campo solo si la URL de su tienda s3BucketEndpoint S3 no incluye una región. No use este campo con buckets de AWS S.3

us-east-1

Para configurar un almacén de bloques, configure los siguientes ajustes:

Clave
Tipo
Descripción
Ejemplo
spec
.backup
.blockStores

string

Nombre del almacén de bloques.

blockStore1

spec
.backup
.blockStores
.mongodbResourceRef

string

Nombre del recurso MongoDB que crea para el almacén de bloques. Debe implementar este recurso de base de datos en el mismo espacio de nombres que el recurso de Ops Manager. El metadata.name del recurso debe coincidir con este nombre.

my-mongodb-blockstore

6

Agregue al archivo de especificación de objetos cualquier configuración opcional para las copias de seguridad que desee aplicar a su implementación. Por ejemplo, para cada tipo de almacén de copias de seguridad y para los procesos del demonio de copias de seguridad de Ops Manager, puede asignar etiquetas para asociar almacenes de copias de seguridad o procesos del demonio de copias de seguridad específicos con proyectos específicos. Utilice spec.backup.[*].assignmentLabels los elementos de los recursos de OpsManager.

7

Agregue cualquier configuración opcional que desee aplicar a su implementación al archivo de especificación de objeto.

8
9

Ejecute el siguiente comando kubectl en el nombre de archivo de la definición de recurso de Ops Manager:

kubectl apply -f <opsmgr-resource>.yaml

Nota

Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple, ejecute:

kubectl apply \
--context "$MDB_CENTRAL_CLUSTER_FULL_NAME" \
--namespace "mongodb"
-f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
10

Para comprobar el estado de su recurso Ops Manager, invoque el siguiente comando:

kubectl get om -o yaml -w

El comando devuelve un resultado similar al siguiente, debajo del campo status mientras se implementa el recurso:

status:
applicationDatabase:
lastTransition: "2023-04-01T09:49:22Z"
message: AppDB Statefulset is not ready yet
phase: Pending
type: ""
version: ""
backup:
phase: ""
opsManager:
phase: ""

El operador de Kubernetes concilia los recursos en el siguiente orden:

  1. Base de datos de la aplicación.

  2. Gerente de operaciones.

  3. Apoyo.

El operador de Kubernetes no reconcilia un recurso hasta que el anterior entre en la fase Running.

Una vez que el recurso Ops Manager completa la fase Pending, el comando devuelve una salida similar a la siguiente en el campo status si habilitó la copia de seguridad:

status:
applicationDatabase:
lastTransition: "2023-04-01T09:50:20Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T09:57:42Z"
message: The MongoDB object <namespace>/<oplogresourcename>
doesn't exist
phase: Pending
opsManager:
lastTransition: "2022-04-01T09:57:40Z"
phase: Running
replicas: 1
url: http://om-svc.cloudqa.svc.cluster.local:8080
version: "8.0.0"

La copia de seguridad permanece en el estado Pending hasta que configures las bases de datos de copia de seguridad.

Tip

El campo status.opsManager.url indica la URL de la conexión del recurso. Usando esta URL, puedes acceder a Ops Manager desde dentro del clúster de Kubernetes o crear un proyecto usando un ConfigMap.

11

Los pasos a seguir varían según cómo se enrute el tráfico a la aplicación Ops Manager en Kubernetes. Si configuró el operador de Kubernetes para que creara un servicio de Kubernetes automáticamente o si lo creó manualmente, utilice uno de los siguientes métodos para acceder a la aplicación Ops Manager:

  1. Consulta con tu proveedor de nube para obtener el FQDN del servicio de balanceo de carga. Consulta la documentación de tu proveedor para obtener más información.

  2. Abra una ventana del navegador y navegue hasta la aplicación Ops Manager usando el FQDN y el número de puerto de su servicio de balanceador de carga.

    http://ops.example.com:8080
  3. Inicie sesión en Ops Manager utilizando las credenciales de usuario administrador.

  1. Configure sus reglas de firewall para permitir el acceso desde Internet al spec.externalConnectivity.port en el host en el que se ejecuta su clúster de Kubernetes.

  2. Abre una ventana del navegador y navega hasta la aplicación Ops Manager utilizando el FQDN y el spec.externalConnectivity.port.

    http://ops.example.com:30036
  3. Inicie sesión en Ops Manager utilizando las credenciales de usuario administrador.

Para saber cómo acceder a la aplicación Ops Manager mediante un servicio de terceros, consulte la documentación de su solución.

12

Si habilitó la copia de seguridad, debe crear una organización de Ops Manager, generar claves de API programáticas y crear un secreto en su herramienta de almacenamiento de secretos. Estas actividades siguen los requisitos previos y el procedimiento descritos en la página "Crear credenciales para el operador de Kubernetes".

13

Si habilitó la copia de seguridad, cree un proyecto siguiendo los requisitos previos y el procedimiento de la página Crear un proyecto por implementación de MongoDB usando un ConfigMap.

Debes configurar en el data.baseUrl ConfigMap como la URL de la aplicación Ops Manager. Para encontrar esta URL, ejecuta el siguiente comando:

kubectl get om -o yaml -w

El comando devuelve la URL de la aplicación Ops Manager en el campo status.opsManager.url, similar al siguiente ejemplo:

status:
applicationDatabase:
lastTransition: "2022-04-01T10:00:32Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T09:57:42Z"
message: The MongoDB object <namespace>/<oplogresourcename>
doesn't exist
phase: Pending
opsManager:
lastTransition: "2022-04-01T09:57:40Z"
phase: Running
replicas: 1
url: http://om-svc.cloudqa.svc.cluster.local:8080
version: "8.0.0"

Importante

Si implementa Ops Manager con el operador de Kubernetes y Ops Manager administrará los recursos de la base de datos MongoDB implementados fuera del clúster de Kubernetes en el que está implementado, debe establecer data.baseUrl con el mismo valor de la spec.configuration.mms.centralUrl configuración en la especificación de recursos de Ops Manager.

Para obtener más información,consulte Administrar implementaciones externas de MongoDB.

14

Si habilitó Copia de seguridad, cree un recurso de base de datos MongoDB para oplog y almacenamiento de snapshot para completar la configuración.

  1. Implemente un recurso de base de datos MongoDB para el almacén de registros de operaciones en el mismo espacio de nombres que el recurso Ops Manager.

    Nota

    Cree esta base de datos como un conjunto de réplicas.

    Haga coincidir el metadata.name del recurso con el spec.backup.opLogStores.mongodbResourceRef.name que especificó en la definición de recurso de Ops Manager.

  2. Elija una de las siguientes opciones:

    1. Implemente un recurso de base de datos MongoDB para el almacén de bloques en el mismo espacio de nombres que el recurso Ops Manager.

      Haga coincidir el metadata.name del recurso con el spec.backup.blockStores.mongodbResourceRef.name que especificó en la definición de recurso de Ops Manager.

    2. Configure un depósito S para3 utilizarlo como3 almacén de instantáneas S.

      Asegúrese de poder acceder al depósito S3 utilizando los detalles que especificó en la definición de recurso de Ops Manager.

15

Si habilitó la copia de seguridad, verifique el estado de su recurso Ops Manager invocando el siguiente comando:

kubectl get om -o yaml -w

Cuando se ejecuta Ops Manager, el comando devuelve la siguiente salida en el campo status:

status:
applicationDatabase:
lastTransition: "2022-04-01T10:00:32Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T10:00:53Z"
phase: Running
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-04-01T10:00:34Z"
phase: Running
replicas: 1
url: http://om-svc.cloudqa.svc.cluster.local:8080
version: "8.0.0"

Consulte Solucionar problemas del operador de Kubernetes para obtener información sobre los estados de implementación de recursos.

En esta página