Prerequisites for Installing the MapR Container Storage Interface (CSI) Storage Plugin

Hardware and Software Requirements

To install and use the MapR Container Storage Interface (CSI) Storage Plugin, you must have the following:
Component Supported Versions
MapR-XD 6.1.0 or later
MapR Ecosystem Pack (MEP) Any MEP supported by MapR 6.1.0 or later. See MEP Support by MapR Core Version.
Kubernetes Software 1.13.x or later*
OS (Kubernetes nodes) All nodes in the Kubernetes cluster must use the same Linux OS. Configuration files are available to support:
  • CentOS
  • Red Hat (use CentOS configuration file)
  • Ubuntu
Note: Docker for Mac with Kubernetes is not supported as a development platform for containers that use the MapR Data Fabric for Kubernetes.
CSI Driver 1.0 or later (implementing CSI spec v1.0.0). The download location shows the available versions of the driver. Driver is supported for:
  • CentOS
  • Ubuntu
Sidecar Container
  • csi-provisioner — v1.0.1
  • csi-attacher — v1.0.1
  • driver-registrar — v1.0.1
  • livenessprobe — v1.0.1
POSIX License The Basic POSIX client package is included by default when you install the MapR Data Fabric for Kubernetes. The Platinum POSIX client can be enabled by specifying a parameter in the Pod spec.

To enable the Platinum POSIX client package, see Enabling the Platinum Posix Client for MapR Data Fabric for Kubernetes FlexVolume Driver. For a comparison of the Basic and Platinum POSIX client packages, see Preparing for Installation (MapR Posix Client).

*Kubernetes alpha features are not supported.

**Only the POSIX client is supported. NFSv3 and NFSv4 are not supported.

Before You Install

Before installing the MapR Container Storage Interface (CSI) Storage Plugin, note that the installation procedure assumes that the Kubernetes cluster is already installed and functioning normally. In addition:

  1. Ensure that all Kubernetes nodes use the same Linux distribution.

    For example, all nodes can be CentOS nodes, or all nodes can be Ubuntu nodes. But a cluster with a mixture of CentOS and Ubuntu nodes is not supported.

  2. Configure your Kubernetes cluster to allow privileged pods by running the following commands:
    $ ./kube-apiserver ...  --allow-privileged=true …
    $ ./kubelet ...  --allow-privileged=true ...
  3. Enable mount propagation to share volumes mounted by one container with other containers in the same pod and other pods on the same node.

    See Mount Propagation for more information.