Changes

Jump to navigation Jump to search
Reading/writing the contents of a persistent volume
</syntaxhighlight>
== Reading/writing to the contents of a persistent volume directories in the pod ==
You can After you have created the access a PV which is bound to a PVC by mounting it into a container. For a demonstration, we use the simple container image "ubuntu:18.04", which runs a minimalistic Ubuntu, and keep it in a very long wait after container startup. <syntaxhighlight lang="yaml"># Test pod to mount a PV bound to a PVC into a container# Before starting this pod, apply the PVC with "kubectl apply -f pvc<filename>.yamlapiVersion: v1kind: Podmetadata: name: your-username-pvc-access-podspec: containers: - name: pvc-access-container  # we use a small ubuntu base to access the PVC image: ubuntu:18.04 # make sure that we have some time until the container quits by itself command: ['sleep', '6h']  # list of mount paths within the container which will be # bound to persistent volumes. volumeMounts: - mountPath: "/mnt/pvc-mnist" # name of the volume for this path (from the below list) name: pvc-mnist  volumes: # User-defined name of the persistent volume within this configuration. # This can be different from the name of the PVC. - name: pvc-mnist persistentVolumeClaim: # name of the PVC this volume binds to claimName: your-username-tf-mnist-pvc</syntaxhighlight> After the PVC is applied, spin up the test pod with <syntaxhighlight lang="yaml">> kubectl apply -f pvc-access-pod.yaml</syntaxhighlight> You now you have several options to get data to and from the container.
=== 1. Copying data from within the container ===
<syntaxhighlight lang="yaml">
> kubectl exec -it pvc-access-pod -- /bin/bash
</syntaxhighlight>
Your pod has internet access. Thus, an option to get data to/from the pod, in particular into the persistent volume, is to use scp, which first needs might need to be installed inside the pod:
<syntaxhighlight lang="yaml">
An even better variant would be "rsync -av" instead of scp, as this only copies files which are different or do not exist in the destination. By reversing source and destination, you can also copy data out of the container this way.
=== 2. Copying data from your local machine the outside ===
From the outside worldlocal machine which has kubectl access to the cluster, you can directly copy data to and from the container using kubectl cp, which has a very similar syntax as scp:
<syntaxhighlight lang="yaml">

Navigation menu