Getting Started with Kube #1 - Base Software

Easiest way is to use Docker Desktop 3.2.1 and enable kubernetes in the preferences, but if you want to see whats happening under the hood I prefer to use this old Virtualbox/Vagrant method.

Tested on Mac (x86_64) 11.2.2 Big Sur Virtualbox 6.1.18 Vagrant 2.2.14 Kubectl 1.16.3

First install Virtualbox, Kubectl and Vagrant from their respective websites.

Clone this repo: https://github.com/justmeandopensource/kubernetes

1git clone https://github.com/justmeandopensource/kubernetes
shell

...then go into the vagrant-provisioning sub-folder and type

1vagrant up
shell

We should see virtualbox VMs like this:

alt text
Figure 1: Kubernetes on three nodes in Virtualbox

Now we'll jump into the master node of the cluster to do some admin and get kubectl working with the cluster.

1vagrant ssh kmaster
2
3  mkdir -p $HOME/.kube
4  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
5  sudo chown $(id -u):$(id -g) $HOME/.kube/config
6
7cat $HOME/.kube/config 
bash

Copy contents of the $HOME/.kube/config file inside the cluster to your dev (host) machine.

(Careful about merging these config files, to keep things simple I copy seperate versions of the config file per "cluster" I manage)

To check everything works, try running a kubectl get nodes command.

You should see something like this:

1NAME       STATUS   ROLES                  AGE   VERSION
2kmaster    Ready    control-plane,master   57m   v1.20.0
3kworker1   Ready    <none>                 54m   v1.20.0
4kworker2   Ready    <none>                 51m   v1.20.0
bash

...and last but not least, to close down your cluster, type

1vagrant suspend
bash

Tested on Mac (x86_64) 11.2.2 Big Sur Virtualbox 6.1.18

Install by doing on MacOSX:

1brew install minikube
bash

To start a new cluster we do:

1minikube start --driver=virtualbox
bash

This preps a new VM called Minikube which is effectively a one-node kubernetes cluster. Test kubectl again by:

1kubectl get nodes
2
3NAME       STATUS   ROLES                  AGE   VERSION
4minikube   Ready    control-plane,master   30s   v1.20.0
bash

...and shutdown we do

1minikube stop
bash