Skip to main content
Version: main

Deploy an Application

After you install OpenEBS, you deploy an application by creating a PersistentVolumeClaim (PVC) that uses an OpenEBS StorageClass, and then running a Pod that consumes the provisioned volume. The steps depend on the storage engine that you use.

Deploy an Application on Your Storage Engine​

Select the documentation for the storage engine that you installed:

Storage EngineDeployment Instructions
Local PV HostpathLocal PV Hostpath Deployment
Local PV LVMLocal PV LVM Deployment
Local PV ZFSLocal PV ZFS Deployment
Local PV RawfileLocal PV Rawfile Deployment
Replicated PV MayastorReplicated PV Mayastor Deployment
important

Local PV Hostpath is available by default after you install OpenEBS. All other storage engines require additional configuration before you can deploy an application. Refer to the respective user guide for the prerequisites.

Deploy Stateful Workloads​

The application developers will launch their application (stateful workloads) that will in turn create Persistent Volume Claims for requesting the Storage or Volumes for their pods. The Platform teams can provide templates for the applications with associated PVCs or application developers can select from the list of Storage Classes available for them.

As an application developer, all you have to do is substitute the StorageClass in your PVCs with the OpenEBS Storage Classes available in your Kubernetes cluster.

Here are examples of some applications using OpenEBS:

  • PostgreSQL
  • Percona
  • Redis
  • MongoDB
  • Cassandra
  • Prometheus
  • Elastic
  • MinIO

Managing the Life Cycle of OpenEBS Components​

Once the workloads are up and running, the platform or the operations team can observe the system using the cloud native tools like Prometheus, Grafana, and so forth. The operational tasks are a shared responsibility across the teams:

  • Application teams can watch out for the capacity and performance and tune the PVCs accordingly.
  • Platform or Cluster teams can check for the utilization and performance of the storage per node and decide on expansion and spreading out of the Data Engines.
  • Infrastructure team will be responsible for planning the expansion or optimizations based on the utilization of the resources.

See Also​