New to KubeDB? Please start here.
Distributed MariaDB Storage Autoscaling
This guide will give an overview on how KubeDB Autoscaler operator autoscales the database storage of a distributed MariaDB cluster using mariadbautoscaler crd.
Before You Begin
- You should be familiar with the following
KubeDBconcepts:
How Storage Autoscaling Works
The following diagram shows how KubeDB Autoscaler operator autoscales the resources of MariaDB database components. Open the image in a new tab to see the enlarged version.

The Auto Scaling process consists of the following steps:
At first, the user creates a
PlacementPolicyCustom Resource (CR) withmonitoring.prometheus.urlconfigured for each spoke cluster. This allows the autoscaler to monitor storage usage across all clusters where MariaDB pods are running.The user creates a
MariaDBCustom Resource (CR) withspec.distributed: trueand a reference to thePlacementPolicy.KubeDBCommunity operator watches theMariaDBCR.When the operator finds a
MariaDBCR, it creates required number ofPetSetsand distributes them across spoke clusters as defined by thePlacementPolicy.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
KubeDBEnterprise operator.Then, in order to set up storage autoscaling of the
MariaDBdatabase the user creates aMariaDBAutoscalerCRO with desired configuration.KubeDBAutoscaler operator watches theMariaDBAutoscalerCRO.KubeDBAutoscaler operator continuously watches persistent volumes of the databases across all spoke clusters to check if storage usage exceeds the specified threshold. It queries the Prometheus endpoints configured per cluster in thePlacementPolicyto collect storage metrics.If the usage exceeds the specified usage threshold, then
KubeDBAutoscaler operator creates aMariaDBOpsRequestto expand the storage of the database.KubeDBEnterprise operator watches theMariaDBOpsRequestCRO.Then the
KubeDBEnterprise operator will expand the storage of the database component as specified on theMariaDBOpsRequestCRO.
Key Difference from Non-Distributed Autoscaling: For distributed MariaDB, the
PlacementPolicymust include amonitoring.prometheus.urlfor each spoke cluster’sdistributionRulesentry. The autoscaler uses these Prometheus endpoints to collect storage usage metrics from pods running across multiple Kubernetes clusters.
In the next docs, we are going to show a step by step guide on Autoscaling storage of a Distributed MariaDB database using MariaDBAutoscaler CRD.































