OpenEBS
OpenEBS
by MayaData

Version 2.10.0

Kubernetes

Description

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.
  • For Jiva or cStor,the recommended configuration is 3 Nodes at the $20/month plan (4GB memory / 2 vCPUs) or higher and iSCSI should be installed and enabled on all worker nodes. 3 Node cluster is required to provide data high availability in case of node failures.

Software Included

Getting started after deploying OpenEBS

After you have successfully 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.

Verifying OpenEBS Pods

Verify the cluster is running OpenEBS pods in the openebs namespace as expected:

kubectl 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-6c7bc84db7-8mxdv      1/1     Running   0          11m
openebs-apiserver-589b5f8bc-668km              1/1     Running   0          11m
openebs-localpv-provisioner-7999b8b695-4w272   1/1     Running   0          11m
openebs-ndm-7p2pd                              1/1     Running   0          11m
openebs-ndm-operator-8f579955b-9zjq2           1/1     Running   0          11m
openebs-ndm-slbll                              1/1     Running   0          11m
openebs-ndm-x8djc                              1/1     Running   0          11m
openebs-provisioner-8584bb9c85-tg59h           1/1     Running   0          11m
openebs-snapshot-operator-76d669f875-7lwzv     2/2     Running   0          11m

Verifying OpenEBS Storage Classes

After verifying OpenEBS pods are running, you can check the OpenEBS Storage Classes:

kubectl get sc

You should see a list of default OpenEBS storage classes and DigitalOcean storage class similar to the following:

NAME                         PROVISIONER                                                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
do-block-storage (default)   dobs.csi.digitalocean.com                                  Delete          Immediate              true                   17m
openebs-device               openebs.io/local                                           Delete          WaitForFirstConsumer   false                  12m
openebs-hostpath             openebs.io/local                                           Delete          WaitForFirstConsumer   false                  12m
openebs-jiva-default         openebs.io/provisioner-iscsi                               Delete          Immediate              false                  12m
openebs-snapshot-promoter    volumesnapshot.external-storage.k8s.io/snapshot-promoter   Delete          Immediate              false                  12m

Configuring Storage Pools

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 concepts

Managing OpenEBS

Updating

To update your installation of OpenEBS

helm repo add openebs https://openebs.github.io/charts
helm repo update

List the details of the currently installed OpenEBS version.

helm list --namespace openebs

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
openebs openebs         1               2021-06-24 04:40:33.089047287 +0000 UTC deployed        openebs-2.10.0  2.10.0
helm upgrade $NAME openebs/openebs --namespace openebs

Note: Replace $NAME with the release name from the above command (In this case openebs), then it will upgrade to the latest available version of OpenEBS.

Deleting

To delete your installation of OpenEBS

helm list --namespace openebs

NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
openebs openebs         1               2021-06-24 04:40:33.089047287 +0000 UTC deployed        openebs-2.10.0  2.10.0

Replace $NAME with the release name from the above command (In this case openebs)

helm uninstall $NAME --namespace openebs

API Creation

In addition to creating OpenEBS via the control panel, you can also use the DigitalOcean API.

As an example, to create a 3 node DigitalOcean Kubernetes cluster made up of Basic Droplets in the SFO2 region, you can use the following curl command. You’ll need to either save your API access token to an environment variable or substitute it into the command below.


  curl -X POST -H "Content-Type: application/json" \
      -H "Authorization: Bearer '$TOKEN'" -d \
      '{"name": "choose-a-name","region": "sfo2","version": "1.17.5-do.0","node_pools": [{"size": "s-1vcpu-2gb","count": 3,"name": "choose-a-name"}]}' \
      "https://api.digitalocean.com/v2/kubernetes/clusters"
      

Support Details

Supported By:MayaData
Support URL:https://kubernetes.slack.com/archives/CUAKPFU78

More DigitalOcean Links

DigitalOcean Community

Developers supporting developers

Ask a Question

Ask anything related to system administration, programming, devops, open source, or the DigitalOcean platform.

List your 1-Click App in the DigitalOcean Marketplace

Partner with us to build traction for your open source project or software company