<p>I tried to define a PVC:</p>
<pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: master-pvc
spec:
  accessModes:
    - ReadWriteOnce
    - ReadOnlyMany
  resources:
    requests:
      storage: 1Gi
</code></pre>
<p>The nodes that need readonly access should define:</p>
<pre class="lang-yaml prettyprint-override"><code>volumeMounts:
- name: mastervol
  mountPath: /data/master/
  readOnly: true
</code></pre>
<p>The master that needs to read and write, should define:</p>
<pre class="lang-yaml prettyprint-override"><code>volumeMounts:
- name: mastervol
  mountPath: /data/master/
</code></pre>
<p>Is this a valid way to achieve what i want?</p>

طه غرايبه
<p>It is not a node that requests a <code>volumeMount</code>, but a container inside a Pod (many Pods may run in same node).</p>
<p>A PVC is 1-1 bound to a PV using a single access mode (even it supports many) at a time (see also <a href="https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes" rel="nofollow noreferrer">access modes</a>). So, you <strong>cannot</strong> have a PVC operating at the same time as <code>ReadWriteOnce</code> (for some Pods) and <code>ReadOnlyMany</code> (for some other Pods).</p>
<p>If you want to support 1 writer and many readers, one solution is to let them use a <code>ReadWriteOnce</code> volume and ensure that all Pods run on the same node the volume is mounted (e.g by using <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity" rel="nofollow noreferrer">node affinity</a> constraints).</p>
