Recherche
Langues
<
7 min de lecture

Stockage Kubernetes

Partager

Icon Kubernetesstorage

Kubernetes storage refers to the set of APIs, objects, and platforms that let containerized applications running on Kubernetes read and write data that survives beyond the life of an individual pod. Because containers are ephemeral by design — they restart, reschedule, and scale on their own — Kubernetes introduces a storage abstraction layer that decouples an application's data from the specific node or container instance it happens to be running on at any given moment.

This abstraction is what makes it possible to run stateful applications such as databases, message queues, and search indexes on Kubernetes alongside stateless microservices, using the same declarative, API-driven operational model.

Why Kubernetes Storage Is Different

Traditional applications typically ran on servers or virtual machines with a fixed, long-lived relationship to their storage: a database server was provisioned once, attached to a SAN LUN or local disk, and stayed put for years. Kubernetes breaks that assumption. Pods can be killed and recreated on a different node in seconds, a deployment can scale from three replicas to thirty, and a node can fail without warning.

For stateless workloads this doesn't matter — a new pod simply starts fresh. For stateful workloads it matters enormously: the data has to be there, intact and accessible, no matter which node the pod lands on next. Kubernetes storage exists to solve exactly that problem, giving stateful applications the same portability and self-healing behavior that stateless applications get for free.

Core Kubernetes Storage Concepts

  • Persistent Volume (PV): A piece of storage in the cluster that has been provisioned, either by an administrator or dynamically using a Storage Class. A PV is a cluster resource, independent of any individual pod's lifecycle.
  • Persistent Volume Claim (PVC): A request for storage made by a user or application. A PVC specifies size, access mode, and (optionally) a Storage Class, and Kubernetes binds it to a matching PV.
  • Storage Class: A way of describing the “classes” of storage available in a cluster — for example, fast NVMe-backed volumes versus lower-cost archival volumes — and the parameters used to provision them dynamically.
  • Container Storage Interface (CSI): A standard API that lets storage vendors write drivers that plug into any Kubernetes cluster without requiring changes to Kubernetes core code. Most modern Kubernetes storage platforms ship a CSI driver.
  • StatefulSet: A workload controller purpose-built for stateful applications, providing each replica with a stable network identity and its own persistent volume that follows it across rescheduling events.
  • Access Modes: PVs and PVCs declare how a volume can be mounted — ReadWriteOnce (RWO, single node read/write), ReadOnlyMany (ROX), or ReadWriteMany (RWX, multiple nodes read/write concurrently).
Kubernetes Storage: PVC-to-PV Binding Flow
Kubernetes Storage: PVC-to-PV Binding Flow

Types of Kubernetes Storage

Local (Ephemeral) Storage

Storage tied directly to the node a pod is running on, such as emptyDir volumes or hostPath mounts. It is fast but disappears when the pod is rescheduled to a different node, making it suitable only for temporary data such as caches or scratch space.

Network-Attached Storage (NFS, SAN/NAS via CSI)

Traditional SAN and NAS systems can be connected to Kubernetes through CSI drivers. This preserves existing storage investments and enterprise data services, but the storage itself still lives and is managed outside the Kubernetes control plane, which introduces an operational seam between the two systems.

Cloud Provider Block Storage

Services such as Amazon EBS, Azure Disk, and Google Persistent Disk integrate closely with their respective managed Kubernetes offerings. They are convenient, but performance is typically capped per VM, latency is higher than local NVMe, and volumes are generally tied to a single availability zone or cloud.

Container-Native (Kubernetes-Native) Storage

A newer category of platform where the storage software itself runs as containers inside the cluster, pooling local node disks (often NVMe) into replicated, dynamically provisioned volumes managed entirely through Kubernetes APIs. This approach is covered in depth in our related glossary entry on container-native storage.

Key Use Cases for Kubernetes Storage

  • Stateful databases such as PostgreSQL, MySQL, MongoDB, and Cassandra, which need low-latency, consistently available persistent volumes with automatic failover.
  • Message queues and event streaming platforms such as Kafka and RabbitMQ, which depend on durable, replicated storage to avoid data loss during broker restarts.
  • AI/ML training and inference pipelines that read and write large datasets across many pods, often requiring ReadWriteMany volumes.
  • CI/CD pipelines and development environments that need fast, on-demand storage for build artifacts, test databases, and ephemeral staging environments.
  • Observability stacks such as Elasticsearch and Prometheus, which require scalable, high-throughput storage that grows with telemetry volume.
  • Backup and disaster recovery workflows for containerized applications, often integrated with tools such as Velero or Veeam Kasten.

How to Choose a Kubernetes Storage Solution

Selecting the right storage approach depends on workload requirements, cluster footprint, and operational preferences. Consider the following dimensions when evaluating options:

  • Kubernetes-native architecture: Is storage provisioned and managed entirely through Kubernetes APIs, or does it require a separate management plane and specialized storage expertise?
  • Performance under real workloads: Benchmark IOPS, latency percentiles, and throughput with your actual applications, including during node failure and recovery scenarios.
  • Data protection and resilience: Evaluate replication policies, snapshot capabilities, and integration with backup tools such as Velero and Veeam Kasten.
  • Operational simplicity: Assess the learning curve, documentation quality, upgrade process, and ongoing day-2 operational burden.
  • Licensing and cost predictability: Understand whether pricing is per-node, per-TB, per-cluster, or usage-based, and watch for hidden costs such as snapshot storage or cross-zone data transfer.
  • Ecosystem compatibility: Confirm support for your Kubernetes distribution, monitoring stack, backup tooling, and GitOps workflows.

Frequently Asked Questions About Kubernetes Storage

A Persistent Volume (PV) is the actual piece of provisioned storage in the cluster. A Persistent Volume Claim (PVC) is a request made by a user or application for storage with certain characteristics. Kubernetes matches PVCs to available PVs, or dynamically provisions a new PV through a Storage Class when needed.

A Storage Class defines a category of storage — for example, high-performance NVMe versus lower-cost capacity storage — along with the provisioner and parameters used to create volumes dynamically. Storage Classes let platform teams offer multiple tiers of storage without requiring users to know the underlying infrastructure details.

If you want dynamic provisioning, snapshots, and lifecycle management for anything beyond basic local or hostPath volumes, you need a CSI driver appropriate to your storage backend. Nearly all modern Kubernetes storage platforms, whether cloud-managed disks, traditional SAN/NAS, or container-native platforms, ship one.

It depends on the platform. Cloud-managed disks are generally tied to a single cloud and availability zone. Container-native and cloud-native storage platforms that abstract the underlying infrastructure can offer a consistent experience across on-premises clusters, multiple public clouds, and edge locations.

Most single-instance relational databases use ReadWriteOnce (RWO) volumes, since only one pod needs to read and write at a time. Distributed or shared-storage workloads, such as certain AI/ML training jobs, may require ReadWriteMany (RWX) support.

Yes, provided the platform is chosen carefully. Mature Kubernetes storage platforms are deployed in production today for financial transaction databases, healthcare systems, and multi-site Kubernetes-as-a-Service offerings. The key is selecting a platform with proven replication, snapshot, and backup capabilities, along with enterprise-grade support.

Kubernetes Storage From DataCore: Puls8

DataCore Puls8 is a Kubernetes-native persistent storage platform built for stateful workloads in production environments. Developed around the CNCF open-source project OpenEBS, Puls8 turns local NVMe drives on Kubernetes worker nodes into fast, resilient persistent volumes, provisioned dynamically through standard PVCs and Storage Classes.

Puls8 gives platform engineering, DevOps, and SRE teams enterprise-grade storage without leaving the Kubernetes operational model: a centralized declarative control plane for multi-cluster environments, synchronous replication and automated application failover, and native integration with Prometheus, Grafana, Veeam Kasten, and Velero. It runs on any standard Kubernetes environment — on-premises, in the cloud, or at the edge — and is licensed per node, with no hidden capacity, IOPS, or volume limits.

Named the 2026 Kubernetes Storage Award winner by StorageNewsletter, Puls8 is deployed in production across multi-cluster environments powering databases, AI/ML workloads, observability stacks, and CI/CD pipelines.

DOWNLOAD FREE TRIAL

Derniers articles de blog
 
Des PVC à l’ingénierie de plateforme : le stockage comme problème d’expérience développeur
Vinod Mohan
Des PVC à l’ingénierie de plateforme : le stockage comme problème d’expérience développeur
 
Comment assurer le fonctionnement des sites Edge quand le matériel est difficile à obtenir
Vinod Mohan
Comment assurer le fonctionnement des sites Edge quand le matériel est difficile à obtenir
 
Comment réduire l’impact des retards liés au matériel de stockage
Vinod Mohan
Comment réduire l’impact des retards liés au matériel de stockage