It seems that Kubernetes supports 3 kinds of access mode for persistent volume: ReadWriteOnce
, ReadOnlyMany
, ReadWriteMany
.
I'm really curious about the scheduler strategy for a pod which uses the ReadWriteOnce
mode volume. For example, I created an RC which have pod num=2, I guess the two pods will be scheduled into the same host because they use the volume that has ReadWriteOnce
mode?
I really want to know the source code of this part.
If a pod mounts a volume with ReadWriteOnce
access mode, no other pod can mount it. In GCE (Google Compute Engine) the only allowed modes are ReadWriteOnce
and ReadOnlyMany
. So either one pod mounts the volume ReadWrite
, or one or more pods mount the volume ReadOnlyMany
.
The scheduler (code here) will not allow a pod to schedule if it uses a GCE volume that has already been mounted read-write.
(Documentation reference for those who didn't understand the question: persistent volume access modes)