- Lab
- A Cloud Guru
Minikube: Deploying Persistent Storage
In this hands-on lab we will be creating a deployment using dynamically allocated storage. This will be for a blog platform, and we'll be using a template to create the deployment.
Path Info
Table of Contents
-
Challenge
Start the Minikube Cluster Using the Correct Driver
Issue the command to start Minikube:
sudo minikube start --vm-driver none
-
Challenge
Create the Ghost Blog Deployment and Verify That It Has Deployed Correctly
Create the blog deployment using the
~/ghost-deploy-template.yaml
. Our YAML should look something like this when we're done:apiVersion: v1 kind: Service metadata: name: blog labels: app: gblog spec: type: NodePort selector: app: gblog ports: - nodePort: 30005 port: 80 targetPort: 2368 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: blog-stor labels: app: gblog spec: accessModes: - ReadWriteOnce resources: requests: storage: 3Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: gblog labels: app: gblog spec: selector: matchLabels: app: gblog strategy: type: Recreate template: metadata: labels: app: gblog spec: containers: - name: blog-cont image: ghost:2.6-alpine ports: - containerPort: 2368 volumeMounts: - name: blog-vol mountPath: "/var/lib/ghost/content" volumes: - name: blog-vol persistentVolumeClaim: claimName: blog-stor
Now we can create the deployment:
sudo kubectl create -f ~/ghost-deploy-template.yaml
Verify that it is up and running:
sudo kubectl get pv sudo kubectl get pvc sudo kubectl get po
-
Challenge
Configure the Proxy to Forward the Blog and Verify It Loads
Get the node port address, which will be the TARGET_PORT of
blog
in the output of this command:sudo minikube service list
Now we can configure Nginx to proxy to the blog service. Edit the file:
sudo vim /etc/nginx/sites-enabled/default
Around line 50, we need to stick our Minikub IP and port in the
location
section remove this linetry_files $uri $uri/ =404;
and replace it with the ip and port from the services command so it looks like this
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. proxy_pass http://MINIKUB_IP:PORT; }
Now let's restart Nginx to implement the new configuration:
sudo systemctl restart nginx
What's a lab?
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.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.