logo Veloxpack

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:

  1. No Staging: Rclone volumes don't require staging
  2. Direct Rclone Integration: Uses rclone's Go library directly
  3. Remote Creation: Creates temporary remotes for each mount
  4. VFS Caching: Leverages rclone's VFS for improved performance
  5. Template Variable Support: Dynamic path substitution using PVC/PV metadata

Supported Kubernetes Versions

Driver VersionKubernetes VersionStatus
main branch1.20+GA
v0.1.01.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?