A PersistentVolumeClaim (PVC) is a namespaced request for storage. It specifies size, access mode, and optionally a StorageClass. Kubernetes binds the PVC to a matching PersistentVolume, and Pods mount the PVC to access the underlying storage.
Storage Interview Questions
Why Storage Matters in Interviews
Storage is where Kubernetes stops being purely ephemeral and starts handling real-world, stateful workloads. Interviewers focus on storage because it reveals whether a candidate has moved beyond deploying stateless apps into managing databases, caches, and data pipelines on Kubernetes.
Expect questions that progress from fundamentals ("Explain the relationship between PV, PVC, and StorageClass") to operational scenarios ("A PVC is stuck in Pending — walk me through how you debug it"). Candidates who can discuss access mode constraints, the trade-offs between static and dynamic provisioning, and when to choose different volume types show genuine production experience.
Advanced interviews may explore CSI driver architecture, volume snapshot and restore workflows, or how storage interacts with scheduling constraints when only certain nodes can access specific backends. Demonstrating awareness of these deeper mechanics sets strong candidates apart.
All Questions
A PersistentVolume (PV) is a cluster-level storage resource provisioned by an administrator or dynamically by a StorageClass. PVs decouple storage from Pod lifecycle, allowing data to persist across Pod restarts and rescheduling.
emptyDir is a temporary volume created when a Pod is assigned to a node and deleted when the Pod is removed. hostPath mounts a file or directory from the host node's filesystem into a Pod. emptyDir is safe for scratch space; hostPath is risky and generally discouraged in production.
Access modes define how a PersistentVolume can be mounted by nodes. ReadWriteOnce (RWO) allows read-write by a single node, ReadOnlyMany (ROX) allows read-only by multiple nodes, and ReadWriteMany (RWX) allows read-write by multiple nodes. The mode determines which workload patterns a volume supports.
A StorageClass defines a 'class' of storage with a specific provisioner, parameters, and reclaim policy. When a PVC references a StorageClass, Kubernetes dynamically provisions a PersistentVolume without manual intervention. This eliminates the need for administrators to pre-create PVs.
CSI (Container Storage Interface) is a standard API that allows Kubernetes to interact with any storage system. CSI drivers run as Pods in the cluster and handle volume provisioning, attaching, mounting, snapshotting, and resizing without requiring changes to Kubernetes core code.