Kubernetes / Storage / Sponsored / Contributed

Kubestr: The Easy Button for Validating and Debugging Your Storage in Kubernetes

7 Apr 2021 6:00am, by

Michael Cade
Michael is a Senior Technologist at Kasten. He is a technical thought leader, community champion and project owner who engages with the community.

Need a better way to explore your Kubernetes storage options? A new open source project from Kasten may be the answer: Kubestr.

Kasten has always been active in the open source community, creating solutions that simplify developing applications in Kubernetes. For example, Kanister is an open source framework that allows for application-level data management and consistency when backing up your Kubernetes environments. Also, Kopia is the underlying framework for lifting and shifting data from A to B, while ensuring data protection and efficient management.

Most recently, Kasten introduced Kubestr, a set of tools that gives developers and operators a fast and convenient way to identify, validate and evaluate storage options for their Kubernetes applications.

Key Challenges of Selecting Persistent Storage for Kubernetes

Creating a Kubernetes application requires storage — but there are numerous options and deciding which way to go typically requires some trial and error. That’s because choosing the right type of storage involves several factors:

  • Is it fast enough for the application and workload in question?
  • Do you need over-the-top storage for your workloads?
  • Does the storage provide data protection via snapshots?
  • What are the financial constraints?
  • What are the technical constraints from a performance point-of-view?

Deciding the best option can be difficult given all of these parameters, particularly if you’re new to using Kubernetes. Under pressure to get new applications up and running quickly, you may just settle for whatever storage option is readily available — not necessarily considering the financial consequences, or how it will impact performance over time.

What’s more, storage options are proliferating. The rapidly expanding landscape of CSI drivers is delivering enhancements and innovations in Kubernetes storage, providing a wide array of options. While this is great news for developers, it also complicates decision-making. Evaluating storage options involves testing them against various application types and user scenarios — and even different numbers of users. How do you explore all of those options in an efficient, reliable way?

Identify, Validate, and Evaluate Storage — On Command

When you deploy an application in Kubernetes, you have a pod and some data storage attached to it; such as a PV or PVC. It’s important to validate if your storage provisioner is capable of protecting data. That requires three actions, which are normally performed in a manual fashion:

  1. Identify the various storage options present in the cluster.
  2. Validate if the storage options are configured correctly.
  3. Evaluate the storage using common benchmarking tools such as FIO.

The example below features a gke cluster. To see available storage options in the cluster, you would simply write a kubectl get storageclasses command:

Kubestr identifies three different types of storage classes and breaks them down by provisioner (with some additional details). This information is sufficient for most cases, but sometimes you need to know more. In those cases, you can run Kubestr by itself and it provides additional details:

Kubstr also provides an automated workflow for capturing a snapshot of the application, then restoring it to ensure that the data written to the storage exists. This helps to identify and debug any issues in the provisioning process.

Simply choose one of the storage classes identified in the previous step. Kubestr creates an application with a pod, a PVC and a PV. In the following example, the application writes some sample data to the PV test volume, such a data string. Once the application is ready, Kubestr takes a snapshot and then attempts to restore the application:

Once the application is restored, it validates that the data inside of it matches what was written initially, then reports back on whether or not the storage was set up properly:

Without Kubestr, the process of identifying and validating storage is a multistep process. With Kubestr, it can be accomplished with a single command.

A Shortcut to Optimizing Storage Performance

Kubestr provides a shortcut to validating your storage options against your cluster. For those new to Kubernetes, it removes some of the complexity and helps to ensure you’re getting the highest performance from your storage. But it’s not just a day-zero tool; it allows you to retro scan and identify the storage options you have within an existing cluster.

Let’s say you’re committed to using Kubernetes, and you’ve deployed applications using a particular storage option and it’s working well. Perhaps you’d like to know what’s happening under the hood, or you suspect you’re not using all of the performance capabilities available to you. Kubestr helps you understand the performance that’s available and discover wasted resources. It also provides enhanced visibility into what’s happening across your Kubernetes storage landscape.

You can see a demo or download Kubestr here.

To understand the what, why and how of Kubestr, check out Kasten’s webinar and demo. It features Kubestr’s creator, Sirish Bathina (Member of Technical Staff, Kasten by Veeam) and Michael Cade (Senior Technologies, Kasten by Veeam). During the webinar, they discuss some of the challenges around persistent storage in Kubernetes, and demonstrate how Kubestr helps to navigate those challenges while simplifying and streamlining the tedious tasks around storage identification, evaluation and validation.

Feature image via Pixabay.