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.9 KiB
Mount ReadWriteOnce Persistent Volumes in Containers
You can attach ReadWriteOnce to a container when launching a container, and changes to those will persist even if that container gets terminated and restarted.
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.
You should refer to the Volume Claim examples. For more information,
see, Create ReadWriteOnce Persistent Volume Claims <storage-configuration-create-readwriteonce-persistent-volume-claims>
.
Create the busybox container with the persistent volumes created from the mounted.
Create a yaml file definition for the busybox container.
% 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.
% 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.
% 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.
% 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.
# 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.
# 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.
# exit Session ended, resume using 'kubectl attach busybox-5c4f877455-gkg2s -c busybox -i -t' command when the pod is running
Terminate the busybox container.
% kubectl delete -f rwo-busybox.yaml
Recreate the busybox container, again attached to persistent volumes.
Apply the busybox configuration.
% kubectl apply -f rwo-busybox.yaml deployment.apps/rwo-busybox created
List the available pods.
% 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.
% kubectl attach busybox-5c4f877455-jgcc4 -c busybox -i -t
From the container's console, list the disks to verify that the PVCs are attached.
# 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.
# ls /mnt1 i-was-here lost+found # ls /mnt2 i-was-here-too lost+found