What are Kubernetes volumes and persistent storage?
Why Interviewers Ask This
Foundational questions like this help interviewers calibrate the rest of the interview. A confident, accurate answer signals that you have solid Kubernetes (K8s) basics — a prerequisite for any developer role.
Answer
Kubernetes storage concepts from ephemeral to persistent: EmptyDir: temporary directory that exists as long as the pod exists. Shared between containers in the same pod. Lost when pod is deleted: volumes: - name: tmp emptyDir: {} # or emptyDir: {medium: Memory} for RAM-backed. HostPath: mount a file/directory from the host node. Dangerous — breaks pod isolation. Only for DaemonSets (collect host logs). PersistentVolume (PV): cluster-level storage resource provisioned by admins (or dynamically). Represents actual storage (EBS volume, NFS share, GCE disk): spec: capacity: storage: 10Gi accessModes: [ReadWriteOnce] persistentVolumeReclaimPolicy: Retain storageClassName: gp3 csi: driver: ebs.csi.aws.com volumeHandle: vol-12345. PersistentVolumeClaim (PVC): namespaced storage request by a user: spec: accessModes: [ReadWriteOnce] resources: requests: storage: 10Gi storageClassName: gp3. Kubernetes binds PVC to matching PV. StorageClass: enables dynamic provisioning — defines provisioner and parameters: kind: StorageClass provisioner: ebs.csi.aws.com parameters: type: gp3 encrypted: "true" reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer. Access modes: ReadWriteOnce (RWO — single node r/w, EBS); ReadOnlyMany (ROX — multiple nodes read-only); ReadWriteMany (RWX — multiple nodes r/w, EFS/NFS); ReadWriteOncePod (single pod r/w — K8s 1.22+). CSI (Container Storage Interface): standard plugin interface — AWS EBS CSI, EFS CSI, Azure Disk CSI. Dynamic provisioning automatically creates cloud volumes when PVC is created.
Pro Tip
Before answering, structure your response: one-line definition → real-world analogy → concrete example from a project. This makes even complex Kubernetes (K8s) answers easy to follow.