CSI Driver Rclone
Kubernetes CSI driver for mounting cloud storage backends using rclone.
Overview
The Rclone CSI Driver enables Kubernetes to mount 50+ cloud storage backends as persistent volumes using rclone as a Go library. It provides seamless integration between Kubernetes storage and cloud providers without requiring external rclone binaries.
Key Features
- 50+ Storage Providers: Supports Amazon S3, Google Cloud Storage, Azure Blob, Dropbox, SFTP, and many more
- No External Dependencies: Uses rclone as a Go library directly - no rclone binary installation required
- No Process Overhead: Direct library integration means no subprocess spawning or external process management
- Dynamic Volume Provisioning: Create persistent volumes via StorageClass
- Secret-based Configuration: Secure credential management using Kubernetes secrets
- Inline Configuration: Direct configuration in StorageClass parameters
- Template Variable Support: Dynamic path substitution using PVC/PV metadata
- VFS Caching: High-performance caching with configurable options
- No Staging Required: Direct mount without volume staging
- Flexible Backend Support: Choose between minimal or full backend support for smaller images
Architecture
The driver implements the CSI specification with three main components:
- Identity Server: Plugin metadata and health checks
- Controller Server: Volume lifecycle management (create/delete)
- Node Server: Volume mounting/unmounting on nodes
Key Design Decisions:
- No Staging: Rclone volumes don't require staging
- Direct Rclone Integration: Uses rclone's Go library directly
- Remote Creation: Creates temporary remotes for each mount
- VFS Caching: Leverages rclone's VFS for improved performance
- Template Variable Support: Dynamic path substitution using PVC/PV metadata
Supported Kubernetes Versions
| Driver Version | Kubernetes Version | Status |
|---|---|---|
| main branch | 1.20+ | GA |
| v0.1.0 | 1.20+ | GA |
Requirements
- Kubernetes 1.20 or later
- CSI node driver registrar
- FUSE support on nodes (for mounting)
- No rclone installation required - uses rclone as Go library
How is this guide?