Tooling

Kubernetes Storage

PersistentVolumes, CSI drivers, and what to actually run.

Cloud-managed (you're on EKS / GKE / AKS)

  • AWS EBS CSI driver — gp3 volumes for general-purpose; io2 for high IOPS.
  • GCE PD CSI driver — pd-balanced / pd-ssd.
  • Azure Disk / Azure File CSI — same shape on Azure.
  • EFS / Filestore CSI — for shared / multi-attach use cases.

These are usually the right answer when you're on a managed cloud. Don't over-engineer.

Self-host distributed storage

  • Longhorn (Rancher / SUSE) — Kubernetes-native distributed block storage. Simple, web UI, snapshots, backups to S3. The default OSS pick.
  • Rook-Ceph — Ceph as a CRD-managed cluster. Industrial-grade; complex; very high ceiling.
  • OpenEBS (Mayastor) — modern, performant block storage for k8s.
  • Portworx — commercial; great for stateful workloads at scale.
  • MicroCeph + Rook — lower-overhead Ceph for smaller clusters.
  • MooseFS / LizardFS — older distributed FS.

Local / hostPath / per-node

  • local-path-provisioner (Rancher) — bundled with k3s; perfect for "I just need a PVC on this node."
  • TopoLVM — LVM-backed local volumes with topology awareness.

Object storage in-cluster

  • MinIO — S3-compatible; can run as a cluster of pods. Production-ready for object storage in air-gapped envs.
  • SeaweedFS — alternative; supports more access patterns.
  • Garage — newer, lighter MinIO alternative.

Backup / snapshots

  • Velero — backup k8s resources + PV snapshots; see Backup.
  • Kasten K10 — paid; rich UI; great for stateful workloads.
  • Stash — open-source backup operator.
  • VolumeSnapshot + restore — built into k8s; CSI driver-dependent.

Multi-attach / shared FS

  • NFS via nfs-subdir-external-provisioner — easy, works.
  • CephFS via Rook — proper distributed shared FS.
  • EFS / Azure Files / GCP Filestore — managed shared filesystems.
  • JuiceFS — POSIX FS over S3; great for ML workloads.

Patterns to adopt

  • Use cloud-managed storage when on a cloud. Operating Ceph yourself is a real job.
  • Test restore drills. A backup you've never restored is a hope.
  • Pin your CSI driver version in IaC; tested upgrades save tears.
  • Tag StorageClasses by workload. gp3-encrypted-fastgp3-cheap-archive.
  • reclaimPolicy: Retain for important data; Delete is fast disaster.
  • Resize PVs in-place instead of creating new ones (CSI supports this).
  • Stateful workloads belong with operators. See k8s operators.

Pick this if…

  • Default on AWS / GCP / Azure: the cloud's CSI driver. Don't fight it.
  • Self-host, modest cluster: Longhorn.
  • Self-host, big workloads: Rook-Ceph.
  • Shared filesystem: NFS subdir provisioner (easy) or CephFS (serious).
  • In-cluster S3: MinIO or SeaweedFS.
  • Backup: Velero.

On this page