kubernetes persistent volume accessmode

wangzhe picture wangzhe · Jun 6, 2016 · Viewed 21.3k times · Source

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.

Answer

DavidO picture DavidO · Jun 6, 2016

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)