Kubernetes Storage
Kubernetes storage provides persistent data to pods through volumes, persistent volume claims, and storage classes backed by CSI drivers. It manages the lifecycle of storage resources so stateful applications retain their data across restarts and rescheduling.
itCloud native tools and technologies | OpenSkills.info
Recommended first:kubernetes-fundamentals
Intro
Kubernetes Storage
Containers have a storage problem by design: their on-disk files are ephemeral, lost on every crash and restart, and invisible to the other containers in the same Pod. Kubernetes storage is the set of abstractions that fixes this — from scratch space that lives exactly as long as a Pod, to durable volumes that outlive Pods, nodes, and even the applications that created them.
The mental model: Kubernetes separates what storage a workload needs from what storage the infrastructure provides, with a matchmaking layer in between. Applications claim storage in abstract terms ("10 GiB, writable by one node at a time"); administrators or automation supply concrete volumes; the platform binds the two. That separation — claim, class, volume — is nearly the entire subject.
Volumes: storage attached to a Pod
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://kubernetes.io/docs/concepts/storage/
Supports
- Scope of Kubernetes storage — long-term and temporary storage for Pods
- Concept-page taxonomy (volumes, persistent volumes, classes, snapshots, capacity)
- https://kubernetes.io/docs/concepts/storage/volumes/
Supports
- Problems volumes solve — container file loss on crash/restart, sharing between containers
- Volume as a directory mounted per-container
- Volume types — emptyDir, configMap, secret, downwardAPI, hostPath (with security warnings)
- Migration of in-tree cloud plugins to CSI drivers
- https://kubernetes.io/docs/concepts/storage/persistent-volumes/
Supports
- PV as cluster storage resource; PVC as request; binding one-to-one; Pods mount claims
- Lifecycle — provisioning (static/dynamic), binding, using, releasing, reclaiming
- Access modes — ReadWriteOnce (per node), ReadOnlyMany, ReadWriteMany, ReadWriteOncePod
- Reclaim policies — Delete and Retain
- In-use protection finalizers
- Volume expansion via allowVolumeExpansion; no shrinking
- https://kubernetes.io/docs/concepts/storage/storage-classes/
Supports
- StorageClass fields — provisioner, parameters, reclaimPolicy, mountOptions, volumeBindingMode, allowVolumeExpansion
- Default StorageClass mechanism
- Immediate vs WaitForFirstConsumer binding and multi-zone topology implications
- https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/
Supports
- On-demand PV creation for PVCs referencing a class; self-service storage; default-class behavior
- https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/
Supports
- Pod-lifetime volume categories including generic ephemeral volumes
- https://kubernetes.io/docs/concepts/storage/volume-snapshots/
Supports
- VolumeSnapshot/VolumeSnapshotClass/VolumeSnapshotContent object model via CSI
- Restore by using a snapshot as a PVC dataSource
- https://kubernetes.io/docs/concepts/storage/volume-pvc-datasource/
Supports
- CSI volume cloning via PVC dataSource
- https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
Supports
- volumeClaimTemplates creating per-ordinal PVCs; retention across rescheduling and deletion; retention policy option
