Connect Kubernetes StorageClasses with Quobyte's Policy Engine

Our tutorial shows you an easy way to serve multiple persistent volume types from the same Kubernetes cluster like all-flash, archival or encrypted persistent volumes.

Once you have the Quobyte CSI Plugin and Quobyte client running on your Kubernetes cluster you are ready to dynamically provision persistent volume claims form Quobyte. Quobyte's Policy Engine gives you control over many aspects of your data, such as the redundancy mechanism (replication, EC or auto), storage media (flash, HDD or a combination of both), tiering, encryption, caching or QoS.

Step 1 - Create a Storage Class in Kubernetes

The first step is to "connect" your Kubernetes Storage Classes with the Quobyte policy engine. The easiest way is to add labels. These labels are simple key-value pairs that are attached to the Quobyte volume when it is created by the CSI plugin. You can add labels to your storage class in the Parameters section. The labels are a comma separated list of key:value pairs:

kind: StorageClass
  name: database
allowVolumeExpansion: true
  quobyteTenant: "My Tenant"
  ... (see for the full StorageClass)
  labels: "encrypted:yes,profile:database"

Step 2 - Create a Policy in Quobyte

The second step is to create policies in Quobyte to map your storage class labels to behavior you want on Quobyte. Let's create our Policy for the database as an example:

Go to the Policy tab in the Quobyte webconsole and select "Create rule with custom policy..."from the dropdown:

Give the rule a name and a description. Then add a policy restriction for "volume" and select "volume label matches regexp" in the scope. Then add "profile" and "database" like in our StorageClass.yaml. This tells Quobyte to apply the policies to all volumes with matching labels.

The next step is to configure policies on how to handle the data on such a volume. Databases do a lot of random 4k IO, which is best suited for replication and flash media. Under the "File Placement Policies" subsection add the Tag based placement and select ssd:

This tells Quobyte to always put files on these volumes onto ssds. Then we add "File Redundancy" in the "File Creation Policies" tab and set it to REPLICATION.

Any volume with the Database storage class will now map onto a high performance random IO profile on Quobyte. You can change the policies at any time and most options will be applied immediately (such as cache settings), during a time you specified (data tiering and movement) or apply only to new files (such as redundancy mechanism).

These features are available in all our editions, including the Quobyte Free Edition. If you haven't installed Quobyte on your kubernetes cluster yet, check out our tutorial here.

Are You Ready for Real Software Storage?

Deploy Quobyte on your Kubernetes cluster with our Helm chart and deploy reliable and scalable persistent volumes in minutes.

Learn More

Learn more about Kubernetes with Quobyte


Quobyte for Kubernetes

Benefits and Features of Quobyte for Kubernetes


Connect Quobyte

How to set up shared file system (ReadWriteMany, RWX) persistent volumes on Kubernetes with Quobyte



Consolidate your Kubernetes Storage with Multi-tenancy and Self-service for real file system as a service


Flash and HDD

Combine SSD or NVMe with HDD for cost effective and fast persistent volumes for Kubernetes