Linstor CSI Plugin
This CSI plugin allows for the use of LINSTOR volumes on Container Orchestrators that implement CSI, such as Kubernetes.
If you wish to create a docker image for a local registry
make dockerimage DOCKERREGISTRY=example.com.
The yaml file in
examples/k8s/deploy shows an example configuration which
will deploy the LINSTOR csi plugin along with the needed k8s sidecar containers.
You will need to change all instances of
LINSTOR_IP to point to the controller(s)
of the LINSTOR cluster that you wish this plugin to interact with.
You will need to enable the following feature gates on both the kube-apiserver
and all kubelets for this plugin to be operational:
CSIDriverRegistry=true. Please ensure that your version of Kubernetes is
recent enough to enable these gates.
This project must be used in conjunction with a working LINSTOR cluster. LINSTOR's documentation is the foremost guide on setting up and administering LINSTOR.
After the plugin has been deployed, you're free to create storage classes
that point to the name of the external provisioner associateed with the CSI plugin
and have your users start provisioning volumes from them. Please see
class.yaml file in the
examples/k8s/ dir for a basic example.
Ensure that all kubelets that are expected to use LINSTOR volumes have a running LINSTOR satellite that is configured to work with the LINSTOR controller configured in the plugin's deployment files and that the storage pool indicated in the storage class has been properly configured. This pool does not need to be present on the Kubelets themselves for volumes attached over the network.
Most of the documentation for using this project with Kubernetes is located here.