New to KubeDB? Please start here.
MongoDB Volume Expansion
This guide will give an overview on how KubeDB Ops-manager operator expand the volume of various component of MongoDB such as ReplicaSet, Shard, ConfigServer, Mongos, etc.
Before You Begin
- You should be familiar with the following
KubeDBconcepts:
How Volume Expansion Process Works
The following diagram shows how KubeDB Ops-manager operator expand the volumes of MongoDB database components. Open the image in a new tab to see the enlarged version.
The Volume Expansion process consists of the following steps:
At first, a user creates a
MongoDBCustom Resource (CR).KubeDBProvisioner operator watches theMongoDBCR.When the operator finds a
MongoDBCR, it creates required number ofPetSetsand related necessary stuff like secrets, services, etc.Each PetSet creates a Persistent Volume according to the Volume Claim Template provided in the petset configuration. This Persistent Volume will be expanded by the
KubeDBOps-manager operator.Then, in order to expand the volume of the various components (ie. ReplicaSet, Shard, ConfigServer, Mongos, etc.) of the
MongoDBdatabase the user creates aMongoDBOpsRequestCR with desired information.KubeDBOps-manager operator watches theMongoDBOpsRequestCR.When it finds a
MongoDBOpsRequestCR, it halts theMongoDBobject which is referred from theMongoDBOpsRequest. So, theKubeDBProvisioner operator doesn’t perform any operations on theMongoDBobject during the volume expansion process.Then the
KubeDBOps-manager operator will expand the persistent volume to reach the expected size defined in theMongoDBOpsRequestCR.After the successful Volume Expansion of the related PetSet Pods, the
KubeDBOps-manager operator updates the new volume size in theMongoDBobject to reflect the updated state.After the successful Volume Expansion of the
MongoDBcomponents, theKubeDBOps-manager operator resumes theMongoDBobject so that theKubeDBProvisioner operator resumes its usual operations.
In the next docs, we are going to show a step-by-step guide on Volume Expansion of various MongoDB database components using MongoDBOpsRequest CRD.































