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>
5.4 KiB
Mount ReadWriteMany Persistent Volumes in Containers
You can attach a ReadWriteMany PVC to multiple containers, and that can be written to, by all containers.
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 . It is the responsibility of an individual micro-service within an application to make a volume claim, mount it, and use it.
You must have created the . This procedure uses with names and
configurations created in : Create ReadWriteMany Persistent Volume Claims <create-readwritemany-persistent-volume-claims>
.
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.
% 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.
% 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.
% 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.
% 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.
% 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.
# cd /mnt1 # touch i-was-here-${HOSTNAME} # ls /mnt1 i-was-here-wrx-busybox-6455997c76-4kg8vi
End the container session.
% exit wrx-busybox-6455997c76-4kg8v -c busybox -i -t' command when the pod is running
Connect to the other busybox container
% 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.
% 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.
# 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.
% 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.
% kubectl delete -f wrx-busybox.yaml
For more information on Persistent Volume Support, see,
About Persistent Volume Support <about-persistent-volume-support>
.