Author: Chris Henzie (Google)
With the release of Kubernetes v1.27 the ReadWriteOncePod feature has graduated to beta. In this blog post, we'll take a closer look at this feature, what it does, and how it has evolved in the beta release.
What is ReadWriteOncePod?
ReadWriteOncePod is a new access mode forPersistentVolumes (PVs) and PersistentVolumeClaims (PVCs) introduced in Kubernetes v1.22. This access mode enables you to restrict volume access to a single pod in the cluster, ensuring that only one pod can write to the volume at a time. This can be particularly useful for stateful workloads that require single-writer access to storage.
For more context on access modes and how ReadWriteOncePod works readWhat are access modes and why are they important?in the Introducing Single Pod Access Mode for PersistentVolumes article from 2021.
Changes in the ReadWriteOncePod beta
The ReadWriteOncePod beta adds support forscheduler preemptionof pods using ReadWriteOncePod PVCs.
Scheduler preemption allows higher-priority pods to preempt lower-priority pods, so that they can start running on the same node. With this release, pods using ReadWriteOncePod PVCs can also be preempted if a higher-priority pod requires the same PVC.
How can I start using ReadWriteOncePod?
With ReadWriteOncePod now in beta, it will be enabled by default in cluster versions v1.27 and beyond.
Note that ReadWriteOncePod isonly supported for CSI volumes. Before using this feature you will need to update the followingCSI sidecarsto these versions or greater:
To start using ReadWriteOncePod, create a PVC with the ReadWriteOncePod access mode:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: single-writer-only spec: accessModes: - ReadWriteOncePod # Allow only a single pod to access single-writer-only. resources: requests: storage: 1Gi
If your storage plugin supportsdynamic provisioning, new PersistentVolumes will be created with the ReadWriteOncePod access mode applied.
Read Migrating existing PersistentVolumesfor details on migrating existing volumes to use ReadWriteOncePod.
How can I learn more?
Please see the alpha blog postand KEP-2485for more details on the ReadWriteOncePod access mode and motivations for CSI spec changes.
How do I get involved?
The Kubernetes #csi Slack channeland any of the standardSIG Storage communication channelsare great mediums to reach out to the SIG Storage and the CSI teams.
Special thanks to the following people whose thoughtful reviews and feedback helped shape this feature:
- Abdullah Gharaibeh (ahg-g)
- Aldo Culquicondor (alculquicondor)
- Antonio Ojea (aojea)
- David Eads (deads2k)
- Jan Šafránek (jsafrane)
- Joe Betz (jpbetz)
- Kante Yin (kerthcet)
- Michelle Au (msau42)
- Tim Bannister (sftim)
- Xing Yang (xing-yang)
If you’re interested in getting involved with the design and development of CSI or any part of the Kubernetes storage system, join theKubernetes Storage Special Interest Group (SIG). We’re rapidly growing and always welcome new contributors.