Container Attached Storage – OpenEBS is a Kubernetes native, 100% open source and 100% in userspace Cloud Native Storage (CNS) solution for container stateful applications in Kubernetes. OpenEBS is currently a CNCF Sandbox project and the most active Container Attached Storage (CAS) solution with the biggest user base and community.
OpenEBS itself is deployed as just another container on your host and enables storage services that can be designated on a per pod, application, cluster or container level, including: Your stateful data can persistence across nodes, dramatically reducing time spent rebuilding failed workloads for example. Synchronization of data across availability zones and cloud providers improving availability and decreasing attach/detach times for example.
OpenEBS vision is simple: let storage and storage services for persistent workloads be fully integrated into the environment so that each team and workload benefits from granularity of control and Kubernetes native behavior. You can find out more about OpenEBS at openebs.io. Commercial support options for OpenEBS is provided by MayaData, see mayadata.io for additional details.
Note: this stack requires a minimum configuration of 1 Node at the $10/month plan (2GB memory / 1 vCPU) for LocalPV. Recommended configuration is 3 Nodes at the $20/month plan (4GB memory / 2 vCPUs) for Jiva and cStor or higher. 3 Node required to provide data high availability in case of node failures.
After you have succesfully deployed OpenEBS then downloaded your kube config file, and are able to successfully connect to your DigitalOcean Kubernetes cluster (see https://cloud.digitalocean.com/kubernetes/clusters/ if you haven’t connected to your cluster) follow the instructions below to start using OpenEBS to manage your Container Attached Storage.
Verify the cluster is running OpenEBS pods in the
openebsnamespace as expected:
kubectl --kubeconfig="openebs-k8s-yourclustername-kubeconfig.yaml" get pods -n openebs
You should see a list of pods running in the cluster similar to the following:
NAME READY STATUS RESTARTS AGE openebs-admission-server-854b569848-fcz7b 1/1 Running 0 2m25s openebs-apiserver-5d55849f5-jw99s 1/1 Running 2 2m25s openebs-localpv-provisioner-56865d855c-jdvhj 1/1 Running 0 2m25s openebs-ndm-operator-5b886f6d89-z7ztb 1/1 Running 1 2m24s openebs-ndm-sz5rv 1/1 Running 0 2m25s openebs-ndm-vq54k 1/1 Running 0 2m25s openebs-provisioner-b8d7f7fbb-6psht 1/1 Running 0 2m24s openebs-snapshot-operator-5bd58bdd8c-bkps9 2/2 Running 0 2m24s
After verifying OpenEBS pods are running, you can check the OpenEBS Storage Classes:
kubectl --kubeconfig="openebs-k8s-yourclustername-kubeconfig.yaml" get sc
You should see a list of OpenEBS Storage Classes similar to the following:
NAME PROVISIONER AGE do-block-storage (default) dobs.csi.digitalocean.com 7m openebs-device openebs.io/local 3m33s openebs-hostpath openebs.io/local 3m33s openebs-jiva-default openebs.io/provisioner-iscsi 3m34s openebs-snapshot-promoter volumesnapshot.external-storage.k8s.io/snapshot-promoter 3m34s
From here you're ready to start configuring your Storage Pools. Please visit OpenEBS Getting Started Documentation for configuring Storage Pools and more.
In case you are using OpenEBS Dynamic LocalPV Provisioner please visit OpenEBS Local PV User Guide