Install with Kubernetes

StorageOS can be used as a storage provider for your Kubernetes cluster, making local storage accessible from any node within the Kubernetes cluster. Data can be replicated to protect against node failure.

At its core, StorageOS provides block storage. You may choose the filesystem type to install to make devices usable from within containers.

Try it in your browser for up to one hour »


You will need a Kubernetes 1.8+ cluster with Beta APIs enabled.

  1. Enable the MountPropagation flag by appending --feature-gates MountPropagation=true to the kube-apiserver and kubelet services.

  2. For deployments where the kubelet runs in a container (eg. OpenShift, CoreOS, Rancher), add --volume=/var/lib/storageos:/var/lib/storageos:rshared to each of the kubelets. This will be fixed in Kubernetes 1.10+.

  3. Enable the Network Block Device module on each node for better performance.

For Kubernetes 1.7, you can install the container directly in Docker.

Install with Helm

Firstly, install Helm.

$ git clone storageos
$ cd storageos
$ helm install --name my-release .

# Follow the instructions printed by helm install to update the link between Kubernetes and StorageOS.
$ ClusterIP=$(kubectl get svc/storageos --namespace kube-system -o custom-columns=IP:spec.clusterIP --no-headers=true)
$ ApiAddress=$(echo -n "tcp://$ClusterIP:5705" | base64)
$ kubectl patch secret/storageos-api --namespace kube-system --patch "{\"data\":{\"apiAddress\": \"$ApiAddress\"}}"

To uninstall the release with all related Kubernetes components:

$ helm delete --purge my-release

See further configuration options.