Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes Operator
/

Configure Queryable Backups for Ops Manager Resources

On this page

  • Prerequisites
  • Procedure
  • Configure kubectl to default to your namespace.
  • Create the PEM file for backups.
  • Create a secret containing the PEM file.
  • Configure Ops Manager custom resource to use the secret.
  • Save your Ops Manager config file.
  • Apply changes to your Ops Manager deployment.
  • Track the status of the mounted volumes and Secrets.
  • Disable Queryable Backups
  • Update the Ops Manager custom resource.
  • Save your Ops Manager custom resource.
  • Apply the changes to your Ops Manager custom resource.
  • Navigate to the Ops Manager backup settings.
  • Delete the PEM file
  • Restart the Web Server for the change to take effect.

You can configure queryable backups for Ops Manager resources that you deploy in the Kubernetes Operator.

Note

In the Ops Manager documentation, queryable backups are also referred to as queryable snapshots, or queryable restores.

Queryable backups allow you to run queries on specific backup snapsnots from your Ops Manager resources. Querying Ops Manager backups helps you compare data from different snapshots and identify the best snapshot to use for restoring data.

In the following procedure you:

  • Create the queryable.pem file that holds the certificates for accessing the backup snapshots that you intend to query.

  • Create the secret containing the queryable.pem file.

  • Configure an Ops Manager custom resource to use the secret for queryable backups.

  • Save the Ops Manager custom resource configuration and apply it.

Once the Kubernetes Operator deploys the updated configuration for its custom resource, Ops Manager can read the secret from the spec.backup.queryableBackupSecretRef.name parameter. You can now access the backup snapshots and run queries on them.

Before you configure queryable backups, complete the following tasks:

1

If you have not already, run the following command to execute all kubectl commands in the namespace you created.

Note

If you are deploying an Ops Manager resource in a multi-Kubernetes cluster MongoDB deployment:

  • Set the context to the name of the central cluster, such as: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Set the --namespace to the same scope that you used for your multi-Kubernetes cluster MongoDB deployment, such as: kubectl config --namespace "mongodb".

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

Create the Ops Manager queryable.pem file that you will use for accessing and querying backups based on your deployment's TLS requirements. The PEM file contains a public key certificate and its associated private key that are needed to access and run queries on backup snapshots in Ops Manager.

To learn more about the PEM file's requirements, see Authorization and Authentication Requirements in Ops Manager.

3

Run the following command to create a secret with the queryable.pem file that you created in the previous step:

kubectl create secret generic queryable-pem --from-file=./queryable.pem

If you're using HashiCorp Vault as your secret storage tool, you can Create a Vault Secret instead.

To learn about your options for secret storage, see Configure Secret Storage.

4

Configure spec.backup.queryableBackupSecretRef.name to reference the queryable.pem secret.

1 apiVersion: mongodb.com/v1
2 kind: MongoDBOpsManager
3 metadata:
4 name: ops-manager
5 spec:
6 replicas: 1
7 version: 6.0.0
8 adminCredentials: ops-manager-admin-secret
9 backup:
10 enabled: true
11 queryableBackupSecretRef:
12 name: om-queryable-pem
5
6

Invoke the following kubectl command on the filename of the Ops Manager resource definition:

kubectl apply -f <opsmgr-resource>.yaml

When you apply the changes to your Ops Manager resource definition, Kubernetes updates the Ops Manager StatefulSet, creates the volumes, and mounts the Secrets.

7
  1. Obtain the list of persistent volume claims:

    kubectl get pvc
  2. Obtain the Secrets:

    kubectl get secrets
  3. Check the status of your Ops Manager resources:

    kubectl get om <resource-name> -o yaml -w

    The -w flag means "watch". With the "watch" flag set, the output refreshes immediately when the configuration changes until the status phase achieves the Running state.

    To learn more about the resource deployment statuses, see Troubleshoot the Kubernetes Operator.

After you configure queryable backups, you can query them to select the best backup snapshot to use for restoring data.

If you require all containers in your MongoDB deployment to be fully static, disable queryable backups as a best practice. This is so the Backup Daemon Service doesn't attempt to download the MongoDB binaries from Ops Manager. Downloading binaries undermines the immutable nature of static containers and is only possible with non-static containers. To learn more, see Static Containers (Public Preview).

To disable queryable backups:

1

In the MongoDBOpsManager custom resource, set spec.configuration.mms.featureFlag.backup.queryable and spec.configuration.mms.featureFlag.backup.wt.queryable to disabled.

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: opsmgr-resource
5spec:
6 configuration:
7 mms.featureFlag.backup.wt.queryable: "disabled"
8 mms.featureFlag.backup.queryable: "disabled"
2
3

Invoke the following kubectl command on the filename of the Ops Manager resource definition:

kubectl apply -f <opsmgr-resource>.yaml
4

In the Ops Manager UI, click Admin in the upper-right hand corner. From the Admin screen, click General Ops Manager Config Backup.

5

Navigate to the Queryable Snapshot Configuration section and delete the Proxy Server PEM File.

6