You are looking at the documentation of a prior release. To read the documentation of the latest release, please visit here.

New to KubeDB? Please start here.

Weaviate Storage Autoscaling

This guide will give you an overview of how KubeDB autoscales the storage of a Weaviate cluster using a WeaviateAutoscaler.

Before You Begin

How Storage Autoscaling Works

KubeDB provides a WeaviateAutoscaler CRD to automatically expand the storage of a Weaviate cluster when the volumes start filling up. Storage autoscaling requires a StorageClass that supports volume expansion (allowVolumeExpansion: true).

The storage autoscaling process consists of the following steps:

  1. The user creates a WeaviateAutoscaler CR with a spec.storage.weaviate block describing the trigger, the usage threshold, and the scaling factor.

  2. The KubeDB Autoscaler operator watches the PVC usage of the Weaviate pods.

  3. When a volume’s used space crosses usageThreshold (a percentage of the volume capacity), the Autoscaler operator creates a WeaviateOpsRequest of type VolumeExpansion, increasing the volume size by scalingThreshold percent.

  4. The KubeDB Ops Manager applies the VolumeExpansion ops request, expanding the PVCs.

The relevant fields under spec.storage.weaviate are:

  • triggerOn or Off, enables/disables storage autoscaling.
  • usageThreshold — the percentage of used space that triggers expansion.
  • scalingThreshold — the percentage by which the volume is expanded each time.
  • expansionModeOnline or Offline.

In the next doc, we are going to show a step-by-step guide on autoscaling the storage of a Weaviate cluster.