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.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Start the Minikube Cluster Using the Correct Driver
Issue the command to start Minikube:
sudo minikube start --vm-driver none
- 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
- 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