Kubernetes CSI, CDI, openEBS

The Container Storage Interface (CSI) is a standard for exposing storage to workloads on Kubernetes. To enable automatic creation/deletion of volumes for CSI Storage, a Kubernetes resource called StorageClass must be created and registered within the Kubernetes cluster.

Associated with the StorageClass is a CSI provisioner plugin that does the heavy lifting at disk and storage management layers to provision storage volumes based on the various attributes defined in the StorageClass. Kubernetes CSI was introduced in Kubernetes v1.9 release, promoted to beta in Kuberentes v1.10 release as CSI v0.3, followed by a GA release in Kubernetes v1.13 as CSI v1.0.

https://docs.robin.io/storage/latest/storage.html

Containerized-Data-Importer (CDI) is a persistent storage management add-on for Kubernetes. It’s primary goal is to provide a declarative way to build Virtual Machine Disks on PVCs for Kubevirt VMs.

CDI works with standard core Kubernetes resources and is storage device agnostic, while its primary focus is to build disk images for Kubevirt, it’s also useful outside of a Kubevirt context to use for initializing your Kubernetes Volumes with data.

The kubevirt content type indicates that the data being imported should be treated as a Kubevirt VM disk. CDI will automatically decompress and convert the file from qcow2 to raw format if needed. It will also resize the disk to use all available space.

CDI is designed to be storage agnostic.

https://github.com/kubevirt/containerized-data-importer

OpenEBS is Kubernetes native Container Attached Storage solution that makes it possible for Stateful applications to easily access Dynamic Local PVs or Replicated PVs

OpenEBS can be used across all Kubernetes distributions – On-premise and Cloud.

OpenEBS turns any storage available on the Kubernetes worker nodes into local or distributed Kubernetes Persistent Volumes.

OpenEBS is the leading choice for NVMe based storage deployments. OpenEBS is completely Open Source and Free.

The Stateful Pod writes the data to the OpenEBS engines that synchronously replicates the data to multiple nodes in the cluster. OpenEBS engine itself is deployed as pod and orchestrated by Kubernetes.

https://openebs.io/docs/

Leave a comment