evroc CSI driver
The evroc CSI driver lets Kubernetes clusters on evroc VMs dynamically provision persistent block storage using evroc Disks.
For information on how to use the driver, see the GitHub repository.
Overview
When you run Kubernetes on evroc virtual machines, you need a way to provide persistent storage to your containerized applications. The evroc CSI Driver bridges Kubernetes and the evroc storage platform, allowing you to create PersistentVolumeClaims that are automatically backed by evroc Disks.
The driver handles the full volume lifecycle:
- Provisioning - Creates evroc Disks when PersistentVolumeClaims are requested
- Attachment - Attaches disks to the correct VM using hotswap disk attachments
- Mounting - Formats and mounts volumes inside your pods
- Cleanup - Detaches and optionally deletes disks when no longer needed
Key features
The evroc CSI driver provides:
- Dynamic provisioning - Automatically create and delete evroc Disks based on Kubernetes PersistentVolumeClaim requests
- Topology-aware scheduling - Volumes are created in the same availability zone as the node where your pod is scheduled
- Multiple access modes - Supports ReadWriteOnce (single node), ReadWriteOncePod (single pod), and ReadOnlyMany (multiple readers)
- Block and filesystem volumes - Use volumes as raw block devices or formatted filesystems
- Secure authentication - Integrates with evroc IAM using OIDC with automatic token refresh
How it works
The CSI driver runs as two components in your Kubernetes cluster:
-
Controller - A Deployment that communicates with the evroc API to create, attach, and delete disks. It watches for PersistentVolumeClaim requests and provisions the underlying storage.
-
Node plugin - A DaemonSet running on each node that handles local operations like formatting disks and mounting them into pods.
When you create a PersistentVolumeClaim, Kubernetes notifies the CSI controller, which creates an evroc Disk in the appropriate zone. When a pod using that claim is scheduled, the controller attaches the disk to the VM, and the node plugin formats and mounts it for your application.
Limitations
The CSI driver is under active development. Constraints include:
- Filesystem support - Only ext4 is supported
- Volume snapshots - Not yet implemented
- Volume expansion - Not yet implemented
- Volume cloning - Not yet implemented
Prerequisites
To use the evroc CSI Driver, you need:
- A Kubernetes cluster (v1.28+) running on evroc VMs
- evroc platform credentials with permissions to manage Disks and HotswapDiskAttachments
- Helm 3.0+ (for installation)
The driver authenticates with evroc using a service account. See the GitHub repository for details on configuring credentials.
Learn more
- Disks - Learn about evroc persistent block storage
- Hotswap Disk Attachments - Understand how the CSI driver attaches volumes to running VMs
- Regions and zones - Understand topology-aware volume provisioning