Uploaded image for project: 'Application Controller'
  1. Application Controller
  2. APPC-1710

Need for "ReadWriteMany" access on storage when deploying on Kubernetes?

XMLWordPrintable

      Hello,

      today when deploying APP-C with OOM, most (all except one) of the PersistentVolumeClaim needs the "ReadWriteMany" (or "RWX") capability:

       

      $ kubectl get pvc -n onap | grep appc | grep RWX
      onap-appc-appc-ansible-server-playbook-onap-appc-appc-ansible-server-0           Bound     onap-appc-appc-ansible-server-playbook0         1Gi        RWX            onap-appc-appc-ansible-server-playbook      150m
      onap-appc-appc-db-data-onap-appc-appc-db-0                                       Bound     onap-appc-appc-db-data0                         2Gi        RWX            onap-appc-appc-db-data                      150m
      onap-appc-appc-db-data-onap-appc-appc-db-1                                       Bound     onap-appc-appc-db-data1                         2Gi        RWX            onap-appc-appc-db-data                      147m
      onap-appc-appc-db-data-onap-appc-appc-db-2                                       Bound     onap-appc-appc-db-data2                         2Gi        RWX            onap-appc-appc-db-data                      140m

       

       

      According to Kubernetes Documentation (https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes), ReadWriteMany stands for "the volume can be mounted as read-write by many nodes".

      That means that a particular PVC needs to be read and written from many pods. That also means that your code takes that into account and do the work to avoid write at the same place at the same time.

      An issue on RWX mode is that most "official" storage driver from Kubernetes doesn't support it (13 over the 19 drivers doesn't support it, espacially OpenStack, Amazon and Google storage classes).

      It's then very hard in a lot of case to use APP-C.

       

      If the needs is that the volume can be mounted as read by many nodes and write by one node (which seems to be the case), RWO (ReadWriteOnce) should be sufficient and is supported by all drivers.

       

      in the effort to deploy ONAP for gating on public cloud (one the priority of El Alto), using storage classes (and if possible RWO access) is very important.

       

      Can you verify that RWO is sufficient and if yes, I can submit a Gerrit review to move your access needs to RWO.

            takamune_cho takamune_cho
            sdesbure sdesbure
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: