📖 Scenario: You are managing storage in a Kubernetes cluster. You want to understand how PersistentVolumes behave when their associated PersistentVolumeClaims are deleted. This depends on the reclaimPolicy set on the PersistentVolume.There are two main reclaim policies: Retain and Delete. Retain keeps the volume and data after the claim is deleted, while Delete removes the volume and data.
🎯 Goal: Create a Kubernetes PersistentVolume manifest with a reclaimPolicy set to Retain. Then create another PersistentVolume manifest with reclaimPolicy set to Delete. Finally, print the reclaim policies of both volumes to understand their behavior.
📋 What You'll Learn
Create a PersistentVolume named pv-retain with reclaimPolicy Retain
Create a PersistentVolume named pv-delete with reclaimPolicy Delete
Store the reclaim policies in variables named retain_policy and delete_policy
Print the values of retain_policy and delete_policy
💡 Why This Matters
🌍 Real World
Kubernetes administrators use reclaim policies to control what happens to storage volumes when applications stop using them. This helps prevent accidental data loss or frees up storage automatically.
💼 Career
Understanding reclaim policies is essential for DevOps engineers and cloud administrators managing persistent storage in Kubernetes clusters.
Progress0 / 4 steps
1
Create PersistentVolume with reclaimPolicy Retain
Create a dictionary called pv_retain representing a Kubernetes PersistentVolume manifest with these exact fields: metadata.name set to pv-retain, spec.capacity.storage set to 10Gi, spec.accessModes set to ["ReadWriteOnce"], spec.persistentVolumeReclaimPolicy set to Retain, and spec.hostPath.path set to /mnt/data-retain.
Kubernetes
Hint
Use nested dictionaries to represent the manifest structure. The reclaim policy is under spec.persistentVolumeReclaimPolicy.
2
Create PersistentVolume with reclaimPolicy Delete
Create a dictionary called pv_delete representing a Kubernetes PersistentVolume manifest with these exact fields: metadata.name set to pv-delete, spec.capacity.storage set to 10Gi, spec.accessModes set to ["ReadWriteOnce"], spec.persistentVolumeReclaimPolicy set to Delete, and spec.hostPath.path set to /mnt/data-delete.
Kubernetes
Hint
Follow the same structure as pv_retain, but change the name and reclaim policy accordingly.
3
Extract reclaim policies into variables
Create two variables: retain_policy and delete_policy. Assign retain_policy the value of pv_retain["spec"]["persistentVolumeReclaimPolicy"] and delete_policy the value of pv_delete["spec"]["persistentVolumeReclaimPolicy"].
Kubernetes
Hint
Access nested dictionary keys step-by-step to get the reclaim policy values.
4
Print reclaim policies
Write two print statements to display the values of retain_policy and delete_policy exactly as: print("Retain policy:", retain_policy) and print("Delete policy:", delete_policy).
Kubernetes
Hint
Use print with a string and the variable separated by a comma to display the policy names.
Practice
(1/5)
1. What does the Retain reclaim policy do in Kubernetes Persistent Volumes?
easy
A. Keeps the volume and data after the PersistentVolumeClaim is deleted for manual cleanup.
B. Automatically deletes the volume and data when the PersistentVolumeClaim is deleted.
C. Prevents any deletion of the PersistentVolumeClaim.
D. Creates a backup of the volume before deletion.
Solution
Step 1: Understand reclaim policies
Reclaim policies define what happens to storage after the claim is deleted.
Step 2: Identify Retain behavior
The Retain policy keeps the volume and data intact for manual intervention.
Final Answer:
Keeps the volume and data after the PersistentVolumeClaim is deleted for manual cleanup. -> Option A
Quick Check:
Retain = Keep data safe [OK]
Hint: Retain means keep data after claim deletion [OK]
Common Mistakes:
Confusing Retain with automatic deletion
Thinking Retain backs up data automatically
Assuming Retain prevents claim deletion
2. Which of the following is the correct YAML snippet to set a PersistentVolume reclaim policy to Delete?
easy
A. persistentVolumeReclaimPolicy: Retain
B. persistentVolumeReclaimPolicy: Delete
C. persistent_volume_reclaim_policy: Delete
D. persistentVolumeReclaimPolicy: delete
Solution
Step 1: Check correct YAML key and value
The key is persistentVolumeReclaimPolicy, and value is case-sensitive.
Step 2: Identify correct value for Delete
The value must be exactly Delete with capital D.
Final Answer:
persistentVolumeReclaimPolicy: Delete -> Option B
Quick Check:
Correct key and capitalized value = A [OK]
Hint: Use exact key 'persistentVolumeReclaimPolicy' and capitalized 'Delete' [OK]
What happens to the volume when the PersistentVolumeClaim using this PV is deleted?
medium
A. The volume and data are deleted automatically.
B. The volume is unbound but data is deleted.
C. The volume is retained and data remains for manual cleanup.
D. The volume is backed up before deletion.
Solution
Step 1: Identify reclaim policy in YAML
The reclaim policy is set as Retain in persistentVolumeReclaimPolicy.
Step 2: Understand Retain effect on deletion
Retain means the volume and data stay after claim deletion for manual handling.
Final Answer:
The volume is retained and data remains for manual cleanup. -> Option C
Quick Check:
Retain policy = keep volume and data [OK]
Hint: Retain policy keeps volume after claim deletion [OK]
Common Mistakes:
Assuming data deletes automatically with Retain
Confusing persistentVolumeReclaimPolicy with reclaimPolicy key
Thinking volume is backed up automatically
4. You set a PersistentVolume reclaim policy to Delete but after deleting the PersistentVolumeClaim, the volume still exists. What is the most likely cause?
medium
A. The reclaim policy was misspelled in the YAML and ignored.
B. The volume was manually retained by an admin.
C. The PersistentVolumeClaim was not actually deleted.
D. The storage class does not support automatic deletion.
Solution
Step 1: Understand Delete reclaim policy
Delete policy should remove the volume automatically after claim deletion.
Step 2: Check storage class support
If the storage class does not support dynamic deletion, volume remains despite policy.
Final Answer:
The storage class does not support automatic deletion. -> Option D
Quick Check:
Storage class support needed for Delete policy [OK]
Hint: Delete needs storage class support to remove volume [OK]
5. You want to ensure that when a PersistentVolumeClaim is deleted, the underlying storage is kept intact for backup purposes, but you also want to automate cleanup later. Which reclaim policy should you use and what additional step is needed?
hard
A. Use Retain policy and configure a cleanup job to delete volumes later.
B. Use Delete policy and rely on automatic cleanup only.
C. Use Retain policy and manually delete the volume after backup.
D. Use Delete policy and create snapshots before deletion.
Solution
Step 1: Choose policy to keep data after claim deletion
Retain policy keeps the volume and data safe after claim deletion.
Step 2: Automate cleanup after backup
Since Retain does not delete automatically, a cleanup job is needed to remove volumes later.
Final Answer:
Use Retain policy and configure a cleanup job to delete volumes later. -> Option A