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.
|
Note: For the user convenience, this guide might refer to IBM Storage Enabler for Containers as
Enabler for Containers.
|

- 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.
|
Note: The instances of IBM Storage Enabler for Containers (ubiquity), its
database (ubiquity-db) and IBM Storage Kubernetes Dynamic Provisioner
(ubiquity-k8s-provisioner) are protected, using standard Kubernetes methods for
high-availability. They are deployed as Kubernetes Deployment objects with replica=1, so if a node
fails, Kubernetes automatically reschedules them to run on another node. IBM Storage Kubernetes
FlexVolume (ubiquity-k8s-flex) is deployed as a Kubernetes DaemonSet on all the worker
and master nodes.
|