New to KubeDB? Please start here.
Druid Volume Expansion
This guide will give an overview on how KubeDB Ops-manager operator expand the volume of various component of Druid
like:. (Combined and Topology).
Before You Begin
- You should be familiar with the following
KubeDB
concepts:
How Volume Expansion Process Works
The following diagram shows how KubeDB Ops-manager operator expand the volumes of Druid
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
Druid
Custom Resource (CR).KubeDB
Provisioner operator watches theDruid
CR.When the operator finds a
Druid
CR, it creates required number ofPetSets
and 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
KubeDB
Ops-manager operator.Then, in order to expand the volume of the druid data components (ie. Historicals, MiddleManagers) of the
Druid
, the user creates aDruidOpsRequest
CR with desired information.KubeDB
Ops-manager operator watches theDruidOpsRequest
CR.When it finds a
DruidOpsRequest
CR, it halts theDruid
object which is referred from theDruidOpsRequest
. So, theKubeDB
Provisioner operator doesn’t perform any operations on theDruid
object during the volume expansion process.Then the
KubeDB
Ops-manager operator will expand the persistent volume to reach the expected size defined in theDruidOpsRequest
CR.After the successful Volume Expansion of the related PetSet Pods, the
KubeDB
Ops-manager operator updates the new volume size in theDruid
object to reflect the updated state.After the successful Volume Expansion of the
Druid
components, theKubeDB
Ops-manager operator resumes theDruid
object so that theKubeDB
Provisioner operator resumes its usual operations.
In the next docs, we are going to show a step-by-step guide on Volume Expansion of various Druid database components using DruidOpsRequest
CRD.