Minikube: Using Local Storage

30 minutes
  • 2 Learning Objectives

About this Hands-on Lab

In this hands-on lab, we will be creating a static volume and then mapping that volume into our pod on our Kubernetes cluster. We will be using predefined YAML files for this, and manually building each object from those files.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Start the Minikube Cluster (Remember to Use the Correct Driver)

Issue this command:

sudo minikube start --vm-driver none
Using the Provided YAML Files, Create a Volume with a Local Mapping and then a Claim and Pod for that Volume

Locate the local folder in the cloud_user home directory, and get into it:

ls
cd local

In this directory inspect the pv-hostPath-volume.yaml (with cat) and locate the local mapping:

hostPath:
path: "/home/cloud_user/html"

Create the directory indicated in the hostPath:

mkdir /home/cloud_user/html

In this directory create an index.html file:

echo 'this is the local index' >> /home/cloud_user/html/index.html

Create the volume and PersistentVolumeClaim and ensure that they are bound:

sudo kubectl apply -f /home/cloud_user/local/pv-hostPath-volume.yaml
sudo kubectl apply -f /home/cloud_user/local/pv-hostPath-claim.yaml

sudo kubectl get pv  # this output should show the volume status as Available
sudo kubectl get pvc # this output should show Bound

Now let’s create the Nginx pod and then run curl on the pod IP to ensure that the custom index loads:

sudo kubectl apply -f /home/cloud_user/local/pv-hostPath-pod.yaml
sudo kubectl get po -o wide

There’s going to be an IP address in the output of that command. We need it in this next command:

curl <IP_ADDRESS>

We should see what we put in the index.html file earlier. Now, to see the power of what we’ve done here, let’s append to that file:

echo 'this is a new line' >> /home/cloud_user/html/index.html

Then we’ll run that curl command again, and see that our new content is showing up — without having to restart the container!

Additional Resources

We have been tasked with creating a persistent store for the development of a web application. The development team no longer wants to have to reconfigure the web container each time that they change the deployment. Instead, they want the home directory of the container to be mounted so that they can update the index file externally. We will need to create a volume that is mapped locally so that it can be used to store the index.html file for the Nginx container. Then we will need to create a PersistentVolumeClaim and map that claim to the Nginx Pod.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Get Started
Who’s going to be learning?

How many seats do you need?

  • $499 USD per seat per year
  • Billed Annually
  • Renews in 12 months

Ready to accelerate learning?

For over 25 licenses, a member of our sales team will walk you through a custom tailored solution for your business.


$2,495.00

Checkout
Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!