Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.
  • Labs icon Lab
  • A Cloud Guru
Google Cloud Platform icon
Labs

Minikube: Deploying to Our Cluster

In this hands-on lab we will be creating a deployment from scratch, using a YAML template, and deploying it to our Minikub cluster. Once everything looks like it's up and running, we'll run some tests.

Google Cloud Platform icon
Labs

Path Info

Level
Clock icon Beginner
Duration
Clock icon 30m
Published
Clock icon Nov 26, 2019

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Table of Contents

  1. Challenge

    Start the Minikube Cluster Using the Correct Driver

    Issue the command to start Minikube:

    sudo minikube start --vm-driver none
    
  2. Challenge

    Create an Nginx Deployment from the Template

    We can create the deployment using the file ~/nginx-deploy-template.yaml. Use the Nginx pv-deployment.yaml file as a reference if needed.

    Our deployment should look similar to this:

    kind: Service
    apiVersion: v1
    metadata:
        name: nginx-service
        labels:
          app: nginx-volume
    spec:
        type: NodePort
        selector:
          app: nginx-volume
        ports:
            - nodePort: 30002
              port: 8080
              targetPort: 80
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: nginx-stor
      labels:
        app: nginx-deploy
        type: local
    spec:
      storageClassName: manual
      capacity:
        storage: 10Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: "/home/cloud_user/indexdoc"
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: nginx-pvc
      labels:
        app: nginx-deploy
    spec:
     storageClassName: manual
     accessModes:
       - ReadWriteOnce
     resources:
       requests:
         storage: 3Gi
    ---
    apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx-deploy
    spec:
      selector:
        matchLabels:
          app: nginx-deploy
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: nginx-deploy
        spec:
          containers:
              - name: nginx-cont
                image: nginx
                ports:
                - containerPort: 80
                volumeMounts:
                - name: nginx-vol
                  mountPath: "/usr/share/nginx/html"
          volumes:
          - name: nginx-vol
            persistentVolumeClaim:
              claimName: nginx-pvc
    
  3. Challenge

    Create the Index File and Create the Nginx Deployment

    Run the following to create the index:

    mkdir ~/indexdoc
    echo 'this is the local index file' > ./indexdoc/index.html
    

    Now let's create the Nginx deployment using kubectl:

    sudo kubectl create -f ~/nginx-deployment-template.yaml
    

    We need make sure the Nginx pod is up and running, and get its IP:

    sudo kubectl get po -o wide
    

    And now we can run curl on that IP, to see if the index loads:

    curl <POD_IP>
    

    The output of that should be the this is the local index file that we put in ./indexdoc/index.html a couple minutes ago.

The Cloud Content team comprises subject matter experts hyper focused on services offered by the leading cloud vendors (AWS, GCP, and Azure), as well as cloud-related technologies such as Linux and DevOps. The team is thrilled to share their knowledge to help you build modern tech solutions from the ground up, secure and optimize your environments, and so much more!

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.

Start learning by doing today

View Plans