IBM Storage Enabler for Containers

IBM® Storage Enabler for Containers allows IBM storage systems to be used as persistent volumes for stateful application running in Kubernetes clusters.

IBM Storage Enabler for Containers is based on an open-source IBM project, , integrating it with IBM Spectrum Connect. Through the IBM Storage Enabler for Containers, Kubernetes persistent volumes (PVs) can be provisioned from IBM storage. This is performed by specifying the Spectrum Connect storage service for Kubernetes storage class object. Thus, the containers can be used with stateful microservices, such as database applications (MongoDB, PostgreSQL etc).

IBM Storage Enabler for Containers uses Kubernetes dynamic provisioning for creating and deleting volumes on IBM storage systems. For details about volume provisioning in the Kubernetes environment, refer to (kubernetes.io/docs/concepts/storage/volumes). In addition, IBM Storage Enabler for Containers utilizes the full set of Kubernetes FlexVolume APIs for volume operations on a host. The operations include initiation, attachment/detachment, mounting/unmounting etc.

Taking full advantage of the flexible service-based storage provisioning model in Spectrum Connect, the IBM Storage Enabler expands storage profile (service) policy. This allows defining specific capabilities per storage service and creating a storage volume according to these requirements. This policy-driven approach helps the Kubernetes administrators easily define Kubernetes storage classes, such as gold, silver or bronze, by using the Spectrum Connect services. The storage administrators define Spectrum Connect storage services and select their capabilities, sizes and storage types. In their turn, the Kubernetes administrators do not need to be fully aware of the existing storage capabilities; all that they have to do is to select the relevant services to be used for the stateful containers.
Figure 1. Integration of IBM storage systems in Kubernetes environment
This image shows Spectrum Connect in a typical containerized environment.
The IBM Storage Enabler for Containers ensures that the data persists (stays intact) even after the container is stopped or removed. The IBM Storage Enabler communicates with the IBM storage systems through IBM Spectrum Connect. Spectrum Connect creates a storage service (for example, gold, silver or bronze) and makes it available for Kubernetes Dynamic Provisioner and FlexVolume, automating IBM storage provisioning for Kubernetes persistent volumes.
  • The Dynamic Provisioner allows storage volumes to be created on-demand, using Kubernetes storage classes based on Spectrum Connect storage services. This provides abstraction for the underlying storage platform, eliminating the need for cluster administrators to pre-provision storage.
  • The FlexVolume is deployed as a DaemonSet on all nodes of the cluster, enabling the users to attach and mount storage volumes into a pod within a Kubernetes node. The DaemonSet installs the FlexVolume CLI on every node in the cluster in the Kubernetes plug-in directory.