Modal Title
Kubernetes / Storage

Ondat’s Unlimited Nodes for Kubernetes Stateful Workloads

This tutorial will show you how to install Ondat Community Edition on an on-prem clusters running in a bare metal environment.
Aug 5th, 2022 11:20am by
Featued image for: Ondat’s Unlimited Nodes for Kubernetes Stateful Workloads

Ondat (formerly StorageOS), the cloud native storage provider, announced the launch of a free community edition, pay-to-go, and custom enterprise editions of its storage platform. Ondat aims to make stateful workloads first-class citizens in Kubernetes by removing the friction involved in installing and managing a cloud native storage layer.

Ondat calls itself a data mesh for block storage built for Kubernetes based on the native constructs such as persistent volumes, persistent volume claims, and snapshots. It aggregates multiple block storage devices available to the nodes to deliver a single, unified storage layer consumed by Kubernetes.

Each volume created by Ondat is synchronously replicated to other volumes provisioned on different nodes of the cluster. This capability brings high availability and redundancy to stateful enterprise workloads.

Since each volume is encrypted independently, isolating and managing multitenant applications becomes simple. Ondat volumes are topology-aware, which means that the inbuilt scheduler ensures that the pods consuming the persistent volumes are always placed in the right availability zone and on the correct node.

Ondat supports cloud-based Kubernetes managed services, on-prem Kubernetes clusters, and Red Hat OpenShift clusters. It also supports air-gapped installation to target offline clusters running at the edge.

Exploring the Ondat Community Edition

One of the common challenges when deploying a Kubernetes cluster is to find the right storage layer. While it’s easy to decide on the CNI network layer, there are not many choices when it comes to storage. The freely available open source offerings lack the ease, reliability, and manageability aspects of a storage cluster.

Ondat Community Edition aims to solve this problem by offering support for ample storage and unlimited nodes. It comes with 1 TiB storage capacity with no restrictions on the number of nodes in the cluster. These two factors uniquely differentiate Ondat from other commercially available free solutions.

Having explored various storage choices for Kubernetes, I found Ondat’s user experience simple and intuitive. The web-based user interface makes it easy to deploy and manage Ondat in various environments, including the cloud and on-premises. It also takes care of generating and applying the community license, which is valid for one full year.

I decided to give Ondat Community Edition a try by installing it in one of my on-prem clusters running in a bare metal environment. My Kubernetes environment is based on the 1.23 release running on a set of Intel NUC machines powered by a 1TB NVMe disk.

Ondat from the Kubernetes commsnd line

Here is a step-by-step guide to get up and running with Ondat Community Edition:

The first step is to register with Ondat and signing into the portal.

The portal acts as a hub for all your clusters running the Ondat storage platform. Let’s start by choosing the ‘Install Ondat on your cluster’ option.

Installing Ondat

Since we are targeting an environment identical to an edge deployment, let’s choose  “other” as the cluster location. Give the cluster a name and add it to the portal.

Here, you find everything you need to install Ondat in your cluster. Assuming you already have Helm installed, all you need to do is copy and paste the command shown in the portal.

Let’s take a closer look at the installation workflow. Firstly, it adds the Helm repo where the Ondat chart is residing and updates the local environment.

Next, it installs the Local Path Provisioner from Rancher that provides a hostPath-based persistent volume from each node. If you are wondering why Ondat needs to install another storage class, it’s because of the etcd pods that need storage. Ondat relies on etcd to store metadata and the cluster information, but etcd pods need a storage class before they can get deployed. The Local Path storage provider is one of the prerequisites for Ondat to provide the persistence for the etcd pods.

Finally, the Helm chart is installed into the storageos namespace by setting various options needed by Ondat.

As soon as you click on “Done”, you will see the cluster under pending clusters. It moves into the connected clusters section soon after the Ondat pods are deployed and ready.

Pending OnDat clusters

Keep an eye on the storageos namespace to see the pods getting created. In a few minutes, you will notice that all the pods are in the ready state.

Checking the state of the OnDat cluster

The portal confirms successful installation by showing the cluster’s status in green.

It’s time to apply the Community Edition license. Go to the license tab under the organization section and choose the cluster.

Applying for the license

Select the community edition license and click on next to apply it.

We can verify the license by deploying a pod that runs Ondat CLI.


Exec into the pod and verify the license.

POD=$(kubectl -n storageos get pod -ocustom-columns=_:.metadata.name --no-headers -lapp=storageos-cli)

kubectl -n storageos exec $POD -- storageos get license

Finally, verify that the Ondat storage class is available for us to create persistent volumes and claims.

kubectl get storageclass

We are now ready to deploy stateful workloads based on the Ondat storage platform. In the upcoming tutorials, I will walk you through the details of the features and capabilities. Stay tuned.

Group Created with Sketch.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.