2022-01-29 23:43:22 +03:00
[Documentation ](../../README.md#documentation ) → Installation → Kubernetes CSI
-----
[Читать на русском ](kubernetes.ru.md )
# Kubernetes CSI
Vitastor has a CSI plugin for Kubernetes which supports RWO (and block RWX) volumes.
To deploy it, take manifests from [csi/deploy/ ](../../csi/deploy/ ) directory, put your
Vitastor configuration in [001-csi-config-map.yaml ](../../csi/deploy/001-csi-config-map.yaml ),
configure storage class in [009-storage-class.yaml ](../../csi/deploy/009-storage-class.yaml )
and apply all `NNN-*.yaml` manifests to your Kubernetes installation:
```
for i in ./???-*.yaml; do kubectl apply -f $i; done
```
2023-11-05 01:05:26 +03:00
After that you'll be able to create PersistentVolumes.
2023-12-02 13:47:51 +03:00
**Important:** For best experience, use Linux kernel at least 5.15 with [VDUSE ](../usage/qemu.en.md#vduse )
kernel modules enabled (vdpa, vduse, virtio-vdpa). If your distribution doesn't
have them pre-built - build them yourself ([instructions](../usage/qemu.en.md#vduse)),
I promise it's worth it :-). When VDUSE is unavailable, CSI driver uses [NBD ](../usage/nbd.en.md )
to map Vitastor devices. NBD is slower and prone to timeout issues: if Vitastor
cluster becomes unresponsible for more than [nbd_timeout ](../config/client.en.md#nbd_timeout ),
the NBD device detaches and breaks pods using it.
2023-11-05 01:05:26 +03:00
## Features
Vitastor CSI supports:
- Kubernetes starting with 1.20 (or 1.17 for older vitastor-csi < = 1.1.0)
- Filesystem RWO (ReadWriteOnce) volumes. Example: [PVC ](../../csi/deploy/example-pvc.yaml ), [pod ](../../csi/deploy/example-test-pod.yaml )
- Raw block RWX (ReadWriteMany) volumes. Example: [PVC ](../../csi/deploy/example-pvc-block.yaml ), [pod ](../../csi/deploy/example-test-pod-block.yaml )
- Volume expansion
- Volume snapshots. Example: [snapshot class ](../../csi/deploy/example-snapshot-class.yaml ), [snapshot ](../../csi/deploy/example-snapshot.yaml ), [clone ](../../csi/deploy/example-snapshot-clone.yaml )
2023-12-02 13:47:51 +03:00
- [VDUSE ](../usage/qemu.en.md#vduse ) (preferred) and [NBD ](../usage/nbd.en.md ) device mapping methods
- Upgrades with VDUSE - new handler processes are restarted when CSI pods are restarted themselves
2024-01-12 01:27:36 +03:00
- VDUSE daemon auto-restart - handler processes are automatically restarted if they crash due to a bug in Vitastor client code
2023-12-02 13:47:51 +03:00
- Multiple clusters by using multiple configuration files in ConfigMap.
2023-11-05 01:05:26 +03:00
Remember that to use snapshots with CSI you also have to install [Snapshot Controller and CRDs ](https://kubernetes-csi.github.io/docs/snapshot-controller.html#deployment ).