Volume mode determines how a Kubernetes persistent volume is exposed. FileSystem is the default and mounts the volume as a directory; Block exposes an empty, unformatted block device. section 7.1.2
Choose and verify the mode according to the workload requirement:
- Use FileSystem when the requirement describes a directory or mounted filesystem. section 7.5
- Use Block when the requirement describes raw storage or an unformatted device. section 7.1.2
- Add volumeMode: Block to the PV spec; rename the PV if an existing volume already uses the name. section 7.1.2
- Run kubectl describe pv to confirm VolumeMode after applying the manifest. section 7.1.2
Create and verify a Block-mode PV
Add this field to the PV YAML:\n\nvolumeMode: Block\n\nApply it with kubectl apply -f pv.yaml, then run kubectl describe pv <pv-name>. The output should show VolumeMode: Block, distinguishing it from a FileSystem PV. section 7.1.2
root@kind-control-plane:/# kubectl describe pv vol02833
Name: vol02833
Labels: type=local
Annotations: pv.kubernetes.io/bound-by-controller: yes
Finalizers: [kubernetes.io/pv-protection]
StorageClass: manual
Status: Bound
Claim: default/claim-02833
Reclaim Policy: Retain
Access Modes: RWO
VolumeMode: FileSystem
Capacity: 100Mi
Node Affinity: <none>
Message:
Source:
Type: HostPath (bare host directory volume)
Path: /mnt/data
HostPathType:
Events: <none>
Use the persistent-volume description output to locate and verify the VolumeMode field alongside access modes, capacity, and claim information. section 7.1.2

