<p>Im trying to set up a local cluster using VM and minikube, as Id been reading its only possible to use it for local purposes, but id like to join a secondary machine, and im searching a way to create the join and hash.</p>

<p>You can easily do it in case your minikube machine is using VirtualBox. </p>

<ol>
<li><p>Start the minikube:</p>

<pre><code>$ minikube start --vm-driver="virtualbox"
</code></pre></li>
<li><p>Check the versions of kubeadm, kubelet and kubectl in minikube and print join command:</p>

<pre><code>$ kubectl version

$ minikube ssh
$ kubelet --version
$ kubeadm token create --print-join-command
</code></pre></li>
<li><p>Create a new VM in VirtualBox. I've used Vagrant to create Ubuntu 16lts VM for this test. Check that the minikube and the new VM are in the same host-only VM network.
You can use anything that suits you best, but the packages installation procedure would be different for different Linux distributions.</p></li>
<li><p>(On the new VM.) Add repository with Kubernetes:</p>

<pre><code>$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
$ cat &lt;&lt;EOF &gt;/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
$ apt-get update
</code></pre></li>
<li><p>(On the new VM.)Install the same version of kubelet kubeadm and other tools on the new VM (1.10.0 in my case)</p>

<pre><code>$ apt-get -y install ebtables ethtool docker.io apt-transport-https kubelet=1.10.0-00 kubeadm=1.10.0-00
</code></pre></li>
<li><p>(On the new VM.)Use your join command from the step 2. IP address  should be from the VM Host-Only-Network. Only having Nat networks didn't work well in my case. </p>

<pre><code>$ kubeadm join 192.168.xx.yy:8443 --token asdfasf.laskjflakflsfla --discovery-token-ca-cert-hash sha256:shfkjshkfjhskjfskjdfhksfh...shdfk
</code></pre></li>
<li><p>(On the main host) Add network solution to the cluster:</p>

<pre><code>$ kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
</code></pre></li>
<li><p>(On the main host) Check your nodes and pods using kubectl:</p>

<pre><code>$ kubectl get nodes:

NAME            STATUS    ROLES     AGE       VERSION
minikube        Ready     master    1h        v1.10.0
ubuntu-xenial   Ready     &lt;none&gt;    36m       v1.10.0

$ kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                       READY     STATUS    RESTARTS   AGE       IP           NODE
kube-system   calico-etcd-982l8                          1/1       Running   0          10m       10.0.2.15    minikube
kube-system   calico-kube-controllers-79dccdc4cc-66zxm   1/1       Running   0          10m       10.0.2.15    minikube
kube-system   calico-node-9sgt5                          1/2       Running   13         10m       10.0.2.15    ubuntu-xenial
kube-system   calico-node-qtpg2                          2/2       Running   0          10m       10.0.2.15    minikube
kube-system   etcd-minikube                              1/1       Running   0          1h        10.0.2.15    minikube
kube-system   heapster-6hmhs                             1/1       Running   0          1h        172.17.0.4   minikube
kube-system   influxdb-grafana-69s5s                     2/2       Running   0          1h        172.17.0.5   minikube
kube-system   kube-addon-manager-minikube                1/1       Running   0          1h        10.0.2.15    minikube
kube-system   kube-apiserver-minikube                    1/1       Running   0          1h        10.0.2.15    minikube
kube-system   kube-controller-manager-minikube           1/1       Running   0          1h        10.0.2.15    minikube
kube-system   kube-dns-86f4d74b45-tzc4r                  3/3       Running   0          1h        172.17.0.2   minikube
kube-system   kube-proxy-vl5mq                           1/1       Running   0          1h        10.0.2.15    minikube
kube-system   kube-proxy-xhv8s                           1/1       Running   2          35m       10.0.2.15    ubuntu-xenial
kube-system   kube-scheduler-minikube                    1/1       Running   0          1h        10.0.2.15    minikube
kube-system   kubernetes-dashboard-5498ccf677-7gf4j      1/1       Running   0          1h        172.17.0.3   minikube
kube-system   storage-provisioner                        1/1       Running   0          1h        10.0.2.15    minikube
</code></pre></li>
</ol>
