Bird
Raised Fist0
Kubernetesdevops~5 mins

PersistentVolume (PV) definition in Kubernetes - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a PersistentVolume (PV) in Kubernetes?
A PersistentVolume (PV) is a piece of storage in the cluster that has been provisioned by an administrator or dynamically. It is a resource in the cluster just like a node and is used to store data persistently beyond the lifecycle of a pod.
Click to reveal answer
intermediate
Which key fields are required in a PersistentVolume YAML definition?
The key fields include: apiVersion, kind (PersistentVolume), metadata (name), spec (capacity, accessModes, persistentVolumeReclaimPolicy, storageClassName, and the actual storage details like hostPath, nfs, etc.).
Click to reveal answer
beginner
What does the 'accessModes' field specify in a PersistentVolume?
The 'accessModes' field defines how the volume can be mounted by pods. Common modes are ReadWriteOnce (mounted by a single node), ReadOnlyMany (mounted read-only by many nodes), and ReadWriteMany (mounted read-write by many nodes).
Click to reveal answer
intermediate
What is the purpose of 'persistentVolumeReclaimPolicy' in a PV?
It tells Kubernetes what to do with the volume after the claim is released. Common policies are Retain (keep data), Recycle (basic scrub), and Delete (remove volume).
Click to reveal answer
beginner
Show a simple example of a PersistentVolume definition using hostPath.
apiVersion: v1 kind: PersistentVolume metadata: name: example-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain hostPath: path: /mnt/data
Click to reveal answer
What does a PersistentVolume in Kubernetes represent?
AA storage resource in the cluster
BA running container
CA network policy
DA pod specification
Which field in a PV definition specifies how the volume can be accessed by pods?
Acapacity
BstorageClassName
Cmetadata
DaccessModes
What does the 'persistentVolumeReclaimPolicy' control?
AThe size of the volume
BThe access mode of the volume
CWhat happens to the volume after release
DThe namespace of the volume
Which of these is NOT a valid access mode for a PersistentVolume?
AWriteOnlyOnce
BReadOnlyMany
CReadWriteMany
DReadWriteOnce
In a hostPath PersistentVolume, what does the 'path' specify?
AThe network address
BThe directory on the node's filesystem
CThe pod name
DThe storage class
Describe the main components and fields of a PersistentVolume definition in Kubernetes.
Think about the YAML structure and what each part means.
You got /8 concepts.
    Explain the difference between the access modes ReadWriteOnce, ReadOnlyMany, and ReadWriteMany in PersistentVolumes.
    Consider how many nodes can use the volume and in what mode.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a PersistentVolume (PV) in Kubernetes?
      easy
      A. To manage container images
      B. To define network policies for pods
      C. To schedule pods on specific nodes
      D. To provide storage that can persist beyond the lifecycle of a pod

      Solution

      1. Step 1: Understand the role of PersistentVolume

        A PersistentVolume provides storage resources independent of pod lifecycle.
      2. Step 2: Compare with other options

        Network policies, pod scheduling, and image management are unrelated to PV.
      3. Final Answer:

        To provide storage that can persist beyond the lifecycle of a pod -> Option D
      4. Quick Check:

        PV = persistent storage [OK]
      Hint: PV stores data beyond pod life, not network or scheduling [OK]
      Common Mistakes:
      • Confusing PV with pod scheduling
      • Thinking PV manages network policies
      • Assuming PV handles container images
      2. Which of the following is the correct minimal YAML snippet to define a PersistentVolume with 5Gi storage and ReadWriteOnce access mode?
      easy
      A. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-example\nspec:\n capacity:\n storage: 5GB\n accessModes:\n - ReadOnlyMany\n hostPath:\n path: /mnt/data
      B. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-example\nspec:\n capacity:\n storage: 5Gi\n accessModes:\n - ReadWriteOnce\n hostPath:\n path: /mnt/data
      C. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-example\nspec:\n size: 5Gi\n accessModes:\n - ReadWriteMany\n hostPath:\n path: /mnt/data
      D. apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n name: pvc-example\nspec:\n storage: 5Gi\n accessModes:\n - ReadWriteOnce

      Solution

      1. Step 1: Check correct kind and apiVersion

        PersistentVolume uses kind: PersistentVolume and apiVersion: v1.
      2. Step 2: Validate capacity and accessModes syntax

        Capacity must be under spec.capacity.storage with unit Gi, and accessModes is a list with ReadWriteOnce.
      3. Final Answer:

        YAML with capacity 5Gi, accessModes ReadWriteOnce, kind PersistentVolume -> Option B
      4. Quick Check:

        Correct YAML keys and values = apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-example\nspec:\n capacity:\n storage: 5Gi\n accessModes:\n - ReadWriteOnce\n hostPath:\n path: /mnt/data [OK]
      Hint: PV uses spec.capacity.storage with units like Gi, not size or GB [OK]
      Common Mistakes:
      • Using PersistentVolumeClaim instead of PersistentVolume
      • Wrong key 'size' instead of 'capacity.storage'
      • Incorrect storage unit like GB instead of Gi
      • Wrong access mode or misspelled keys
      3. Given this PersistentVolume YAML snippet, what is the reclaim policy of the PV?
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-sample
      spec:
        capacity:
          storage: 10Gi
        accessModes:
          - ReadWriteOnce
        persistentVolumeReclaimPolicy: Retain
        hostPath:
          path: /mnt/data
      medium
      A. Delete the volume after release
      B. Recycle the volume automatically
      C. Retain the volume after release
      D. No reclaim policy set

      Solution

      1. Step 1: Locate the reclaim policy field

        The field persistentVolumeReclaimPolicy is set to Retain in the spec.
      2. Step 2: Understand reclaim policy meaning

        Retain means the volume is kept after the claim is released, not deleted or recycled.
      3. Final Answer:

        Retain the volume after release -> Option C
      4. Quick Check:

        persistentVolumeReclaimPolicy = Retain [OK]
      Hint: Look for persistentVolumeReclaimPolicy field value [OK]
      Common Mistakes:
      • Confusing Retain with Delete or Recycle
      • Ignoring the reclaim policy field
      • Assuming default policy without checking
      4. You defined this PersistentVolume YAML but get an error when applying it:
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: pv-error
      spec:
        capacity:
          storage: 20Gi
        accessModes:
          - ReadWriteOnce
        persistentVolumeReclaimPolicy: Delete
        hostPath:
          path: /mnt/data
        storageClassName: fast
      What is the likely cause of the error?
      medium
      A. hostPath volumes cannot have storageClassName set
      B. accessModes value ReadWriteOnce is invalid
      C. Missing volumeMode field
      D. persistentVolumeReclaimPolicy Delete is not allowed

      Solution

      1. Step 1: Check hostPath volume restrictions

        hostPath volumes do not support storageClassName because they are local paths.
      2. Step 2: Validate other fields

        accessModes and reclaim policy values are valid; volumeMode is optional.
      3. Final Answer:

        hostPath volumes cannot have storageClassName set -> Option A
      4. Quick Check:

        hostPath + storageClassName = error [OK]
      Hint: hostPath volumes must not set storageClassName [OK]
      Common Mistakes:
      • Assuming volumeMode is mandatory
      • Thinking accessModes ReadWriteOnce is invalid
      • Believing Delete reclaim policy is disallowed
      5. You want to create a PersistentVolume that allows multiple pods to read and write simultaneously and automatically deletes the volume when released. Which YAML snippet correctly defines these requirements?
      hard
      A. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-multi\nspec:\n capacity:\n storage: 15Gi\n accessModes:\n - ReadWriteMany\n persistentVolumeReclaimPolicy: Delete\n nfs:\n path: /exports/data\n server: 10.0.0.1
      B. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-single\nspec:\n capacity:\n storage: 15Gi\n accessModes:\n - ReadWriteOnce\n persistentVolumeReclaimPolicy: Retain\n hostPath:\n path: /mnt/data
      C. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-multi\nspec:\n capacity:\n storage: 15Gi\n accessModes:\n - ReadOnlyMany\n persistentVolumeReclaimPolicy: Delete\n nfs:\n path: /exports/data\n server: 10.0.0.1
      D. apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-multi\nspec:\n capacity:\n storage: 15Gi\n accessModes:\n - ReadWriteMany\n persistentVolumeReclaimPolicy: Retain\n nfs:\n path: /exports/data\n server: 10.0.0.1

      Solution

      1. Step 1: Identify access mode for multiple pods read/write

        ReadWriteMany allows multiple pods to read and write simultaneously.
      2. Step 2: Check reclaim policy for automatic deletion

        persistentVolumeReclaimPolicy: Delete deletes the volume after release.
      3. Step 3: Confirm storage type supports ReadWriteMany

        NFS supports ReadWriteMany; hostPath does not.
      4. Final Answer:

        YAML with ReadWriteMany, Delete reclaim policy, and NFS volume -> Option A
      5. Quick Check:

        ReadWriteMany + Delete + NFS = apiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-multi\nspec:\n capacity:\n storage: 15Gi\n accessModes:\n - ReadWriteMany\n persistentVolumeReclaimPolicy: Delete\n nfs:\n path: /exports/data\n server: 10.0.0.1 [OK]
      Hint: Use ReadWriteMany + Delete + NFS for multi-pod writable PV [OK]
      Common Mistakes:
      • Using hostPath for multi-pod access
      • Choosing ReadWriteOnce instead of ReadWriteMany
      • Setting reclaim policy to Retain instead of Delete
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard