Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes Operator
/

Configure Storage Options for MongoDB Resources

On this page

  • Prerequisites
  • Procedure

You can configure your MongoDB resources to bind to specific storage in your MongoDB CustomResourceDefinition. The persistence field in the MongoDB CustomResourceDefinition allows you to more precisely manage where Kubernetes stores the logs and metadata generated from MongoDB custom resources. Controlling log and metadata storage allows you to have more fine-grained control of processes that manage and interact with this generated metadata.

You can configure persistence settings per component in the MongoDB CustomResourceDefinition. These settings allow you to specify the relationship between a given component and one or more related PersistentVolume resources, which store output from your MongoDB custom resources.

The persistence setting specifies the number of and storage capacity of persistentVolumes associated with MongoDB custom resource-managed objects in your Kubernetes cluster.

To configure storage options for your MongoDB deployment, you must either have a MongoDB replica set deployed through the MongoDB Kubernetes Operator or meet the following prerequisites:

  • An Ops Manager instance or a Cloud Manager organization.

  • The MongoDB Enterprise Kubernetes Operator.

  • A Kubernetes Operator ConfigMap.

  • Credentials for the Kubernetes Operator or configure a different secret storage tool.

To create a single PersistentVolume in which a given component will store all MongoDB CustomResourceDefinition output, define the component's persistence as single. To create a distinct PersistentVolume for the component's data, journal, and logs, define the component's persistence as multiple.

1

Populate the persistence sections of your MongoDB CRD definition as shown in the following example:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster
6spec:
7 shardCount: 2
8 mongodsPerShardCount: 3
9 mongosCount: 2
10 configServerCount: 3
11 version: "6.0.0"
12 service: my-service
13 type: ShardedCluster
14
15 persistent: true
16
17 configSrvPodSpec:
18 persistence:
19 single: true
20
21 shardPodSpec:
22 persistence:
23 multiple:
24 # if the child of "multiple" is omitted then the default size will be used.
25 # 16GB for "data", 1GB for "journal", 3GB for "logs"
26 data:
27 storage: "20Gi"
28 storageClass: standard # You must define a storageClass, as the Operator creates a PVC, which will only create an associated PV with a backing storageClass.
29 logs:
30 storage: "4Gi"
31 storageClass: standard
32...
2
kubectl apply -f mongodb-crd.yaml

Back

Configure Topology