Create ReadWriteOnce Persistent Volume ClaimsΒΆ

Container images have an ephemeral file system by default. For data to survive beyond the lifetime of a container, it can read and write files to a persistent volume obtained with a Persistent Volume Claim (PVC) created to provide persistent storage.

About this task

For the use case of a single container mounting a specific PVC, create a PVC with accessMode of ReadWriteOnce (RWO).

The following steps show an example of creating two 1GB PVCs with ReadWriteOnce accessMode.

Procedure

  1. Create the rwo-test-claim1 Persistent Volume Claim.

    1. Create a yaml file defining the claim and its attributes.

      For example:

      ~(keystone_admin)]$
      cat <<EOF > rwo-claim1.yaml
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: rwo-test-claim1
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: general
      EOF
      
    2. Apply the settings created above.

      ~(keystone_admin)]$ kubectl apply -f rwo-claim1.yaml
      persistentvolumeclaim/rwo-test-claim1 created
      
  2. Create the rwo-test-claim2 Persistent Volume Claim.

    1. Create a yaml file defining the claim and its attributes.

      For example:

      ~(keystone_admin)]$ cat <<EOF > rwo-claim2.yaml
      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: rwo-test-claim2
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 1Gi
        storageClassName: general
      EOF
      
    2. Apply the settings created above.

      ~(keystone_admin)]$ kubectl apply -f rwo-claim2.yaml
      persistentvolumeclaim/rwo-test-claim2 created
      

Result: Two 1GB Persistent Volume Claims have been created. You can view the PVCs using the following command.

~(keystone_admin)]$ kubectl get persistentvolumeclaims

NAME              STATUS   VOLUME       CAPACITY   ACCESS MODES  STORAGECLASS
rwo-test-claim1   Bound    pvc-08d8..   1Gi        RWO            general
rwo-test-claim2   Bound    pvc-af10..   1Gi        RWO            general
~(keystone_admin)]$ kubectl get persistentvolume

NAME      CAPACITY ACCESS.. RECLAIM.. STATUS CLAIM                   STORAGECLASS
pvc-08d8.. 1Gi      RWO       Delete    Bound  default/rwo-test-claim1 general
pvc-af10.. 1Gi      RWO       Delete    Bound  default/rwo-test-claim2 general