Minikube is a tool which allows you to run a Kubernetes Cluster locally on a Mac, Windows or Linux Machine. Suited to developers who want to be able to develop Container/Applications locally, I am using Minikube as a way to start my journey into Kubernetes.

All of the below steps were taken from the Kubernetes Site, who have done an amazing job of thoroughly documenting the process. I will add relevant links to the bottom of the post.

The high level steps are:

  • Install a Hypervisor
  • Install Kubectl
  • Install Minikube
  • Deploy Cluster and Test

First thing to do is install a Hypervisor, here is a list of supported Hypervisors base don your OS. I am going to use VirtualBox for my Minikube setup which can be found HERE

1-HV

Next, we need to install Kubectl to help us manage the Cluster and Containers

From a Terminal run the following CURL command:

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl

Now to make Kubectl executable, run:

chmod +x ./kubec

Move the Binary to your PATH

sudo mv ./kubectl /usr/local/bin/kubectl

Now to test, run the following to ensure Kubectl is setup

kubectl version

kubectl

Now to install Minikube. There are few different ways for Mac, as documented HERE. I am going to use Homebrew.

brew cask install minikube

Now to Deploy a Cluster and Test, from a Terminal:

minikube start

This will pull down the Minikube ISO

start

You will see a Minikube VM appear in your Hypervisor

MinikubeVM.png

Because Minikube is a self contained Cluster, you will see the Cluster component download and be setup. To view the UI, enter the following into your Terminal:

minikube dashboard

A new Tab should open automatically with the Kubernetes UI

kubeui

Next, to deploy a POD to ensure everything is working. This is a simple Web App to test the process and connectivity. From the Terminal run:

kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node

Now we can run the following to view the deployment

kubectl get deployments

deployments

Now we can view the POD

kubectl get pods

pods

Now to make the Web App available to view, we need to expose the POD as a Kubernetes Service

kubectl expose deployment hello-node --type=LoadBalancer --port=8080

Now when we view the Services, you will see the Load Balancer

kubectl get services

service

We can test this by running the Service – this should open a new Tab in your Browser

minikube service hello-node

HW

Again, Big Thanks to the amazing Documentation from the Kubernetes Site