Kasten on your Minikube

Userlevel 7
Badge +22

Not long ago we setup a single node test Kubernetes cluster on our laptop using Minikube.

Now let’s install the next generation of backup technology! Kasten.

Kasten means box or container in German just in case you were wondering about the funny name :)

We have already installed Chocolatey on our Windows laptop so we can go ahead and use it to install Helm. Helm is like a Linux software package manager but for Kubernetes:


choco install Kubernetes-helm 

We will now use Helm to install the Kasten Helm Chart. You can find out more about Helm here: https://helm.sh/

First, we must create a kasten-io namespace:

kubectl create ns kasten-io

A namespace is a segregated area where only the pods for this setup will run. 

Next we need to add the Kasten repository to Helm so that it knows where to get our Kasten images:


helm repo add kasten https://charts.kasten.io/


We are all set and ready to go.

The install command is pretty straight forward but if you will remember we setup local storage in Minikube using csi-hostpath-sc so we will need to tell Kasten that this is what we will be using:

helm install k10 kasten/k10 –-namespace=kasten-io –-set global.persistence.storageClass=csi-hostpath-sc

We can watch our backup system being built in real time by leveraging the -w (watch) parameter with the kubectl get pods command and don’t forget kasten is being built in its own namespace so we need to add the -n kasten-io parameter so kubectl knows where to look:


kubectl get pods -n kasten-io -w 

Once you see all the pods ready you can perform a ctr c to kill the command.

Do not worry about the Prometheus pod being in a crashloop this might have something to do with minikube and we will not use this in our tests anyways.


There are many ways to expose your Kasten dashboard but for now we will just use a simple port forward command:

Kubectl -n kasten-io port-forward service/gateway 8080:8000


Start up your favorite browser and head to this url:



Enter your Company Name and E-Mail then press Accept.


Presto you have the Kasten Dashboard!


The funny thing about Kasten is that it reminds me a lot of Veeam. It takes some pretty complicated concepts and simplifies them in an intuitive and straight forward manner. Of course you can dig deeper down and find some very complex technology but at first glance it does not strike horror in the hearts of non technical people. This makes our job as backup experts so much easier. 


Coming soon.. Can we really enable K10 Disaster Recovery on our little old laptop? Yes we can!!


Userlevel 7
Badge +21

Great write-up

Userlevel 7
Badge +13

Excellent write-up Geoff! Thanks !

we need to enable all the pods to be successfully running in the minikube in case it is not anbled. 

minikube addons enable volumesnapshots

minikube addons enable csi-hostpath-driver

Userlevel 7
Badge +22

we need to enable all the pods to be successfully running in the minikube in case it is not anbled. 

minikube addons enable volumesnapshots

minikube addons enable csi-hostpath-driver

yes I think I had that in my earlier post but.. might have forgotten. Also make sure to disable the standard storage class. You can disable the standard storage addon and this will remove it. Then you have to make certain you change the default storage class to csi-hostpath-driver. 

Userlevel 7
Badge +22

Also as I noted earlier there seemed to be a problem with the prometheus setup. The container is running as non root and with specified user for security purposes:

    fsGroup: 65534
    runAsGroup: 65534
    runAsNonRoot: true
    runAsUser: 65534


However, this resulted in a permissions issues when it attempted to enact with the mounted volume that is a pvc by default:

component=activeQueryTracker msg="Error opening query log file" file=/data/queries.active err="open /data/qu
eries.active: permission denied"
panic: Unable to create mmap-ed active query log


Consequently the liveness probe kills the container.


I have not had this issue on production like clusters so it seems to be something specific to minikube.


The easy fix is simply to deploy the helm chart with this setting

“--set prometheus.server.persistentVolume.enabled=false”


Again since running Kasten on minikube is just for testing and playing with the GUI I did not see any reason to dive deeper and on my bigger clusters there were no problems.