63cd4f5fdc
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>
170 lines
5.4 KiB
ReStructuredText
170 lines
5.4 KiB
ReStructuredText
|
|
.. fkk1616520068837
|
|
.. _mount-readwritemany-persistent-volumes-in-containers:
|
|
|
|
====================================================
|
|
Mount ReadWriteMany Persistent Volumes in Containers
|
|
====================================================
|
|
|
|
You can attach a ReadWriteMany PVC to multiple containers, and that |PVC| can
|
|
be written to, by all containers.
|
|
|
|
.. rubric:: |context|
|
|
|
|
This example shows how a volume is claimed and mounted by each container
|
|
replica of a deployment with 2 replicas, and each container replica can read
|
|
and write to the |PVC|. 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 must have created the |PVCs|. This procedure uses |PVCs| with names and
|
|
configurations created in |prod| |stor-doc|: :ref:`Create ReadWriteMany Persistent Volume Claims <create-readwritemany-persistent-volume-claims>` .
|
|
|
|
.. rubric:: |proc|
|
|
.. _fkk1616520068837-steps-fqj-flr-tkb:
|
|
|
|
#. Create the busybox container with the persistent volumes created from the PVCs mounted. This deployment will create two replicas mounting the same persistent volume.
|
|
|
|
#. Create a yaml file definition for the busybox container.
|
|
|
|
.. code-block:: none
|
|
|
|
% cat <<EOF > wrx-busybox.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: wrx-busybox
|
|
namespace: default
|
|
spec:
|
|
progressDeadlineSeconds: 600
|
|
replicas: 2
|
|
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"
|
|
restartPolicy: Always
|
|
volumes:
|
|
- name: pvc1
|
|
persistentVolumeClaim:
|
|
claimName: rwx-test-claim
|
|
EOF
|
|
|
|
#. Apply the busybox configuration.
|
|
|
|
.. code-block:: none
|
|
|
|
% kubectl apply -f wrx-busybox.yaml
|
|
deployment.apps/wrx-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
|
|
wrx-busybox-6455997c76-4kg8v 1/1 Running 0 108s
|
|
wrx-busybox-6455997c76-crmw6 1/1 Running 0 108s
|
|
|
|
#. Connect to the pod shell for CLI access.
|
|
|
|
.. code-block:: none
|
|
|
|
% kubectl attach wrx-busybox-6455997c76-4kg8v -c busybox -i -t
|
|
|
|
#. From the container's console, list the disks to verify that the Persistent Volume is attached.
|
|
|
|
.. code-block:: none
|
|
|
|
% df
|
|
Filesystem 1K-blocks Used Available Use% Mounted on
|
|
overlay 31441920 1783748 29658172 6% /
|
|
tmpfs 65536 0 65536 0% /dev
|
|
tmpfs 5033188 0 5033188 0% /sys/fs/cgroup
|
|
ceph-fuse 516542464 643072 515899392 0% /mnt1
|
|
|
|
The PVC is mounted as /mnt1.
|
|
|
|
|
|
#. Create files in the mount.
|
|
|
|
.. code-block:: none
|
|
|
|
# cd /mnt1
|
|
# touch i-was-here-${HOSTNAME}
|
|
# ls /mnt1
|
|
i-was-here-wrx-busybox-6455997c76-4kg8vi
|
|
|
|
#. End the container session.
|
|
|
|
.. code-block:: none
|
|
|
|
% exit
|
|
wrx-busybox-6455997c76-4kg8v -c busybox -i -t' command when the pod is running
|
|
|
|
#. Connect to the other busybox container
|
|
|
|
.. code-block:: none
|
|
|
|
% kubectl attach wrx-busybox-6455997c76-crmw6 -c busybox -i -t
|
|
|
|
#. Optional: From the container's console list the disks to verify that the PVC is attached.
|
|
|
|
.. code-block:: none
|
|
|
|
% df
|
|
Filesystem 1K-blocks Used Available Use% Mounted on
|
|
overlay 31441920 1783888 29658032 6% /
|
|
tmpfs 65536 0 65536 0% /dev
|
|
tmpfs 5033188 0 5033188 0% /sys/fs/cgroup
|
|
ceph-fuse 516542464 643072 515899392 0% /mnt1
|
|
|
|
|
|
#. Verify that the file created from the other container exists and that this container can also write to the Persistent Volume.
|
|
|
|
.. code-block:: none
|
|
|
|
# cd /mnt1
|
|
# ls /mnt1
|
|
i-was-here-wrx-busybox-6455997c76-4kg8v
|
|
# echo ${HOSTNAME}
|
|
wrx-busybox-6455997c76-crmw6
|
|
# touch i-was-here-${HOSTNAME}
|
|
# ls /mnt1
|
|
i-was-here-wrx-busybox-6455997c76-4kg8v i-was-here-wrx-busybox-6455997c76-crmw6
|
|
|
|
#. End the container session.
|
|
|
|
.. code-block:: none
|
|
|
|
% exit
|
|
Session ended, resume using 'kubectl attach wrx-busybox-6455997c76-crmw6 -c busybox -i -t' command when the pod is running
|
|
|
|
#. Terminate the busybox container.
|
|
|
|
.. code-block:: none
|
|
|
|
% kubectl delete -f wrx-busybox.yaml
|
|
|
|
For more information on Persistent Volume Support, see, :ref:`About Persistent Volume Support <about-persistent-volume-support>`.
|
|
|
|
|