Memory hook: Claim requests; class provisions; policy reclaims.
Must remember
A Pod's container filesystem is not durable application storage. emptyDir lives with the Pod and survives container restarts, but disappears when the Pod is removed. hostPath exposes a node path and ties behavior to that node; it is not a general portable persistent-storage design.
A PersistentVolume represents storage; a PersistentVolumeClaim requests capacity and access characteristics. A StorageClass identifies a provisioner and parameters for dynamic provisioning. With WaitForFirstConsumer, binding can wait for workload placement so topology and storage availability align. An immediate binding may otherwise choose storage in the wrong zone for a constrained Pod.
Access modes describe permitted mounting patterns: ReadWriteOnce is read-write by one node (potentially several Pods there), ReadOnlyMany is many-node read access, ReadWriteMany is multi-node read/write when the storage supports it, and ReadWriteOncePod restricts access to one Pod with supported CSI storage. Modes do not transform an underlying disk into a distributed filesystem.
Reclaim policy decides what happens after the claim releases a PV. Delete generally removes dynamically provisioned backing storage through the provisioner; Retain preserves it for manual recovery/reuse. Deleting a workload is not the same as deleting its PVC. Inspect the actual PV/class rather than assuming retention.
Expansion requires class and driver support; filesystem expansion behavior depends on the volume and driver. A larger claim can request growth, but Kubernetes does not provide ordinary volume shrinking. volumeMode: Block exposes a raw block device rather than a mounted filesystem.
Diagnose Pending claims through events, matching class, size, access modes, provisioner health and topology. Diagnose mount failures through CSI/controller/node logs, attachment limits, permissions and application paths. Never delete a data-bearing claim merely to make a warning disappear.
Choose under exam pressure
| Requirement | Choice and reason |
|---|---|
| Provision storage on claim creation | StorageClass with a working dynamic provisioner. |
| Match disk zone to Pod placement | WaitForFirstConsumer where appropriate. |
| Keep data after claim deletion | A deliberate Retain reclaim policy and recovery procedure. |
Traps
- ReadWriteOnce means one node, not universally one Pod.
- A Retain volume still needs a tested backup and recovery plan.
Active recall
1. What survives an individual container restart in the same Pod?
An emptyDir volume, although it is deleted with the Pod.
2. Why can a claim legitimately stay Pending until scheduling?
WaitForFirstConsumer delays provisioning/binding to account for placement.
3. Which mode specifically restricts to one Pod?
ReadWriteOncePod, with supported CSI storage.
4. Does deleting a Deployment necessarily delete its PVC?
No. Workload and claim lifecycles are separate.
5. Can expansion be assumed for every class?
No. The StorageClass and CSI driver must support the requested operation.