Incorporated patchset 1 review comments Updated patchset 5 review comments Updated patchset 6 review comments Fixed merge conflicts Updated patchset 8 review comments Change-Id: Icd7b08ab69273f6073b960a13cf59905532f851a Signed-off-by: Juanita-Balaraj <juanita.balaraj@windriver.com>
		
			
				
	
	
		
			197 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			197 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
 | 
						|
.. pjw1564749970685
 | 
						|
.. _storage-configuration-mount-readwriteonce-persistent-volumes-in-containers:
 | 
						|
 | 
						|
====================================================
 | 
						|
Mount ReadWriteOnce Persistent Volumes in Containers
 | 
						|
====================================================
 | 
						|
 | 
						|
You can attach ReadWriteOnce |PVCs| to a container when launching a container,
 | 
						|
and changes to those |PVCs| will persist even if that container gets terminated
 | 
						|
and restarted.
 | 
						|
 | 
						|
.. rubric:: |context|
 | 
						|
 | 
						|
This example shows how a volume is claimed and mounted by a simple running
 | 
						|
container, and the contents of the volume claim persists across restarts of
 | 
						|
the container. It is the responsibility of an individual micro-service within
 | 
						|
an application to make a volume claim, mount it, and use it.
 | 
						|
 | 
						|
.. rubric:: |prereq|
 | 
						|
 | 
						|
You should refer to the Volume Claim examples. For more information, see,
 | 
						|
:ref:`Create ReadWriteOnce Persistent Volume Claims <storage-configuration-create-readwriteonce-persistent-volume-claims>`.
 | 
						|
 | 
						|
.. rubric:: |proc|
 | 
						|
 | 
						|
 | 
						|
.. _storage-configuration-mount-persistent-volumes-in-containers-d583e55:
 | 
						|
 | 
						|
#.  Create the busybox container with the persistent volumes created from
 | 
						|
    the |PVCs| mounted.
 | 
						|
 | 
						|
 | 
						|
    #.  Create a yaml file definition for the busybox container.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % cat <<EOF > rwo-busybox.yaml
 | 
						|
            apiVersion: apps/v1
 | 
						|
            kind: Deployment
 | 
						|
            metadata:
 | 
						|
              name: rwo-busybox
 | 
						|
              namespace: default
 | 
						|
            spec:
 | 
						|
              progressDeadlineSeconds: 600
 | 
						|
              replicas: 1
 | 
						|
              selector:
 | 
						|
                matchLabels:
 | 
						|
                  run: busybox
 | 
						|
              template:
 | 
						|
                metadata:
 | 
						|
                  labels:
 | 
						|
                    run: busybox
 | 
						|
                spec:
 | 
						|
                  containers:
 | 
						|
                  - args:
 | 
						|
                    - sh
 | 
						|
                    image: busybox
 | 
						|
                    imagePullPolicy: Always
 | 
						|
                    name: busybox
 | 
						|
                    stdin: true
 | 
						|
                    tty: true
 | 
						|
                    volumeMounts:
 | 
						|
                    - name: pvc1
 | 
						|
                      mountPath: "/mnt1"
 | 
						|
                    - name: pvc2
 | 
						|
                      mountPath: "/mnt2"
 | 
						|
                  restartPolicy: Always
 | 
						|
                  volumes:
 | 
						|
                  - name: pvc1
 | 
						|
                    persistentVolumeClaim:
 | 
						|
                      claimName: rwo-test-claim1
 | 
						|
                  - name: pvc2
 | 
						|
                    persistentVolumeClaim:
 | 
						|
                      claimName: rwo-test-claim2
 | 
						|
            EOF
 | 
						|
 | 
						|
 | 
						|
    #.  Apply the busybox configuration.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl apply -f rwo-busybox.yaml
 | 
						|
            deployment.apps/rwo-busybox created
 | 
						|
 | 
						|
 | 
						|
#.  Attach to the busybox and create files on the Persistent Volumes.
 | 
						|
 | 
						|
 | 
						|
    #.  List the available pods.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl get pods
 | 
						|
            NAME                        READY   STATUS    RESTARTS   AGE
 | 
						|
            rwo-busybox-5c4f877455-gkg2s 1/1     Running   0         19s
 | 
						|
 | 
						|
    #.  Connect to the pod shell for CLI access.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl attach rwo-busybox-5c4f877455-gkg2s -c busybox -i -t
 | 
						|
 | 
						|
    #.  From the container's console, list the disks to verify that the
 | 
						|
        Persistent Volumes are attached.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            # df
 | 
						|
            Filesystem     1K-blocks  Used     Available Use% Mounted on
 | 
						|
            overlay        31441920   3239984  28201936  10%   /
 | 
						|
            tmpfs          65536         0     65536     0%    /dev
 | 
						|
            tmpfs          65900776      0     65900776  0%    /sys/fs/cgroup
 | 
						|
            /dev/rbd0      999320     2564     980372    0%    /mnt1
 | 
						|
            /dev/rbd1      999320     2564     980372    0%    /mnt2
 | 
						|
            /dev/sda4      20027216   4952208  14034624  26%
 | 
						|
 | 
						|
        The PVCs are mounted as /mnt1 and /mnt2.
 | 
						|
 | 
						|
#.  Create files in the mounted volumes.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        # cd /mnt1
 | 
						|
        # touch i-was-here
 | 
						|
        # ls /mnt1
 | 
						|
        i-was-here lost+found
 | 
						|
        #
 | 
						|
        # cd /mnt2
 | 
						|
        # touch i-was-here-too
 | 
						|
        # ls /mnt2
 | 
						|
        i-was-here-too lost+found
 | 
						|
 | 
						|
#.  End the container session.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        # exit
 | 
						|
        Session ended, resume using
 | 
						|
        'kubectl attach busybox-5c4f877455-gkg2s -c busybox -i -t' command when
 | 
						|
        the pod is running
 | 
						|
 | 
						|
#.  Terminate the busybox container.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        % kubectl delete -f rwo-busybox.yaml
 | 
						|
 | 
						|
#.  Recreate the busybox container, again attached to persistent volumes.
 | 
						|
 | 
						|
    #.  Apply the busybox configuration.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl apply -f rwo-busybox.yaml
 | 
						|
            deployment.apps/rwo-busybox created
 | 
						|
 | 
						|
    #.  List the available pods.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl get pods
 | 
						|
            NAME                        READY   STATUS    RESTARTS   AGE
 | 
						|
            rwo-busybox-5c4f877455-jgcc4  1/1   Running   0          19s
 | 
						|
 | 
						|
    #.  Connect to the pod shell for CLI access.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            % kubectl attach busybox-5c4f877455-jgcc4 -c busybox -i -t
 | 
						|
 | 
						|
    #.  From the container's console, list the disks to verify that the PVCs
 | 
						|
        are attached.
 | 
						|
 | 
						|
        .. code-block:: none
 | 
						|
 | 
						|
            # df
 | 
						|
            Filesystem           1K-blocks      Used Available Use% Mounted on
 | 
						|
            overlay               31441920   3239984  28201936  10% /
 | 
						|
            tmpfs                    65536         0     65536   0% /dev
 | 
						|
            tmpfs                 65900776         0  65900776   0% /sys/fs/cgroup
 | 
						|
            /dev/rbd0               999320      2564    980372   0% /mnt1
 | 
						|
            /dev/rbd1               999320      2564    980372   0% /mnt2
 | 
						|
            /dev/sda4             20027216   4952208  14034624  26%
 | 
						|
            ...
 | 
						|
 | 
						|
 | 
						|
#.  Verify that the files created during the earlier container session
 | 
						|
    still exist.
 | 
						|
 | 
						|
    .. code-block:: none
 | 
						|
 | 
						|
        # ls /mnt1
 | 
						|
        i-was-here lost+found
 | 
						|
        # ls /mnt2
 | 
						|
        i-was-here-too lost+found
 |