Kubernetes has the ability to provide external storage for your containerized applications. In this lab, you will be able to work with Kubernetes storage hands-on, designing your own solution to a real-world problem using Kubernetes features. This will help you familiarize yourself with Kubernetes features, such as volumes, and PersistentVolumes.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create a Persistent Volume
- Create a PersistentVolume with a type of
hostPath
that stores data at the path/etc/output
on the host. - Set the capacity to
1Gi
.
Note: that you will need to create and use a custom StorageClass that supports volume resizing since you will need to resize the PersistentVolumeClaim later. For this exercise, you can use the provisioner
kubernetes.io/no-provisioner
.- Create a PersistentVolume with a type of
- Create a Persistent Volume Claim.
- Create a PersistentVolumeClaim that will bind to the PersistentVolume. Give it a capacity of
100Mi
.
- Create a PersistentVolumeClaim that will bind to the PersistentVolume. Give it a capacity of
- Create a Pod That Will Output Data to the Persistent Volume
- Create a pod that uses the image
busybox
and sends a response tooutput.log
.sh -c while true; do echo "Successfully written to log." >> /output/output.log; sleep 10; done
- Mount the
PersistentVolumeClaim
, so that the data written to/output/output.log
by the container shows up in the persistent volume storage.
- Mount the
- Create a pod that uses the image
- Resize the Persistent Volume Claim
- Increase the size of the
PersistentVolumeClaim
to200Mi
.
- Increase the size of the