The following concept diagram illustrates how IBM®
storage systems are accessed and utilized as persistent (stateful) storage devices for
containers.
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.
Figure 1. Integration of IBM storage systems in Kubernetes
environment
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.