<p>I am trying to create Kubernetes cluster with different number of nodes using same machine. Here I want to create separate VMs and need to create node in those VMs. I am currently exploring about kubeadm and minikube for these tasks.</p>

<p>When I am exploring I had the following confusions:</p>

<ol>
<li>I need to create 4 number of nodes each need to create in different VMs. Can I use kubeadm for these requirement?</li>
<li>Also found that Minikube is using for creating the single node structure and also possible to use to creation of VMs. What is the difference between kubeadm and minikube ?</li>
<li>If I want to create nodes in different VMs which tool should use along with installation of Kubernetes cluster master?</li>
<li>If I am using VMs, then can I directly install VMware workstation / virtualbox in my Ubuntu 16.04 ?</li>
<li>In AWS EC2, they already giving the Ubuntu as a virtual machine. So is possible to install VMware workstation on ubuntu? Since it is VMs on another VM.</li>
</ol>

<p>Kubeadm should be a good choice for you. It is quite easy to use by just following the <a href="https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/" rel="nofollow noreferrer">documentation</a>. <strike>Minikube would give you only single node Kubernetes.</strike> As of minikube 1.10.1, it is possible to <a href="https://minikube.sigs.k8s.io/docs/tutorials/multi_node/" rel="nofollow noreferrer">use multi-node clusters</a>.</p>
<ol>
<li>Kubeadm is a tool to get Kubernetes up and running on already existing machine. It will basically configure and start all required Kubernetes components (for minimum viable cluster). Kubeadm is the right tool to bootstrap the Kubernetes cluster on your virtual machines. But you need to prepare the machines your self (install OS + required software, networking, ...). kubeadm will not do it for you.</li>
<li>Minikube is a tool which will allow you to start <strike>locally single node</strike> Kubernetes cluster. This is usually done in a VM - minikube supports VirtualBox KVM and others. It will start for you the virtual machine and take care of everything. But it will not do a 4 node cluster for you.</li>
<li>Kubeadm takes care of both. You first setup the master and then use kubeadm on the worker nodes to join the master.</li>
<li>When you use Kubeadm, it doesn't really care what do you use for the virtualization. You can choose whatever you want.</li>
<li>Why do you want to run virtual machines on top of your EC2 machine? Why not just create more (perhaps smaller) EC2 machines for the cluster? You can use this as an inspiration: <a href="https://github.com/scholzj/terraform-aws-kubernetes" rel="nofollow noreferrer">https://github.com/scholzj/terraform-aws-kubernetes</a>. There are also some more advanced tools for setting up the whole cluster such as (for example) <a href="https://github.com/kubernetes/kops/" rel="nofollow noreferrer">Kops</a>.</li>
</ol>
