One of the challenges that I have faced learning Kubernetes is persistent storage. It is a steep learning curve but one of the most essential areas elements necessary to make containers become a real force in the world of computing. There are many flavors of Kubernetes persistent storage and making the right choice for your workload and application s is no trivial matter.
Would it not be nice if there was some helpful utility to test and validate my persistent storage setup?
Well now there is thanks to Veeam Kasten’s Kubestr!
As stated on its web page “Kubestr is a collection of tools to discover, validate and evaluate your kubernetes storage options.”
Lets take a look at what this thing can do:
You can download Kubestr here: https://github.com/kastenhq/kubestr/releases/tag/v0.4.13
I chose the Linux binary and downloaded to my control node.
Untar the the tarball and you are ready to go.
In linux make the file kubestr executable by typing in sudo chmod +x kubestr
Then run .kubestr and it will proceed to discover your available storage options.
We are now ready to perform an fio test (flexible input/output tester).
./kubestr fio -s <storage class>
There are some additional options like –size and –fiofile that can be used.
More information on the options and some examples of fiofiles can be found here:
https://kubestr.io/fio/
On my test cluster I am leveraging the rook-ceph so I will input my rook-ceph-block storage class in the command:
Kubestr will create a pvc for the test:
Rook-ceph dynamically creates a persistent volume for the test with the claim name that stands out from my other persistent volumes beginning with: default/kubster-fio-vpc…..
After a short wait… presto I have my result and keeping with Veeam tradition the result is green
Apart from the OK message various details about storage performance are provided:
Kubestr also allows you to perform tests of your storage snapshotting capabilities which is essential when it comes to backup.
To run the test you input your storageclass and volume snapshot class:
./kubestr csicheck -s <storage class> -v <volume snapshot class>
A pvc, pv and pod now appear in the cluster specifically for the tests and once they are up and running kubestr will try and take a snapshot:
Lucky that I ran Kubestr!! I have an issue with my snapshotting:
I can now go and troubleshoot my volume snapshotting setup.
Thank you KUBESTR!