GithubHelp home page GithubHelp logo

mapr-csi's Introduction

MapR CSI Storage Plugin

The MapR CSI Storage plugin provides the persistent storage for Application containers. For more information, Refer to MapR documentation

Note: Kubernetes or CSI alpha features are not supported on MapR CSI Storage plugin v1.0.0.

MapR CSI Storage Plugin Support Matrix

MapR CSI Plugin version Supported Kubernetes Version CSI Spec version Posix Client (Core) Version
v1.0.0 >=1.13.0 v1.0.0 6.1.0

The released MapR CSI Storage plugin docker images will be published to:
maprtech/csi-kdfplugin
maprtech/csi-kdfprovisioner
maprtech/csi-kdfdriver

Pre-requisites

Currently, MapR CSI Storage plugin (v1.0.0) only support Kubernetes as CO (Container Orchestration) system.

Before installing the MapR Container Storage Interface (CSI) Storage Plugin, Please note the following:

  1. The installation procedure assumes that the Kubernetes cluster (See supported Kubernetes version) is already installed and functioning normally.
  2. Configure --maxvolumepernode to Maximum volumes allowed on a node as per it's capacity in the deploy/kubernetes/csi-maprkdf-v1.0.0.yaml accordingly.
  3. The Privileged Pods and Mount Propogation are enabled on the Kubernetes environment. See below procedure to enable them:
    a) Enable privileged Pods
    This can be achieved with starting kubelet and Apiserver with allow-privileged flag to true:
    ./kube-apiserver ... --allow-privileged=true ...
    ./kubelet ... --allow-privileged=true ...

Note: This is default in some environments, such as GKE, Kubeadm etc.
b) Enable mount propogation
MapR CSI Storage plugin require the mount propogation enabled on the Kubernetes environment. This will allow sharing of volumes mounted by one container with other containers in the same pod, or even to other pods on the same node.
See Mount Propogation for more info.

Note: To test if Mount Propagation is enabled, Run the following command and it should run fine without error.

$ docker run -it -v /mnt:/mnt:shared busybox sh -c ls /

Note: For more detail instructions, Please refer to Public CSI Documentation

Installation

Follow the below procedure to install MapR CSI Storage plugin in Kubernetes environment:

Note: The following steps requires the git and kubectl to be installed on the computer.

  1. clone the mapr-csi repository
$ git clone https://github.com/mapr/mapr-csi.git
  1. cd to mapr-csi directory
$ cd mapr-csi
  1. Deploy Installation yaml file for MapR CSI storage
$ kubectl create -f deploy/kubernetes/csi-maprkdf-v1.0.0.yaml

Please refer to Troubleshooting section for the installation troubleshooting tips.

Note: csi-maprkdf-v1.0.0.yaml provides the MapR released CSI storage plugin based of MapR provided Centos OS image and CSI KDF driver.
If you would like to build your own container with other supported Posix Client OS and modify the image in csi-maprkdf-v1.0.0.yaml, Please refer to BYOC for MapR CSI Storage Plugin for more info.

(Optional) Build your own container for MapR CSI Storage plugin

This step is optional and is provided as a reference to build a custom plugin image:

Note: This step requires docker to be installed on the computer.

a) cd build/<centos/ubuntu>
b) (Optional) Modify the maprtech/csi-kdfdriver tag to an released tag in Dockerfile
c) (Optional) Modify the custom image tag in docker-custom-build.sh
d) Run ./docker-custom-build.sh to start building the custom docker image

Check out the sample examples section for the usage of MapR CSI storage plugin.

Uninstall

To remove MapR CSI storage plugin from Kubernetes cluster, Run the following:

$ kubectl delete -f deploy/kubernetes/csi-maprkdf-v1.0.0.yaml

Note: For any suggestion, issues or improvements, Please file a github issue.

mapr-csi's People

Contributors

sarjeet2013 avatar iandow avatar auddye avatar kcheng-mr avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.