Multi-node linux VM cluster running on Windows host

Hey peeps, I’m new to the forum, could you spare a few minutes to help me figure something out? I’m working on my Masters projects and have been introduced to K8s recently, I just love it and can’t wait to start experimenting :heart:

  1. I got a windows machine, and the idea is to have 3 ubuntu VMs on top of it (virtualbox) have 1 master and 2 workers. And use that as my own cluster. My windows machine will just be used to kinda monitor everything and work from it, but ideally i want to do everything through SSh. Is that feasible?

  2. Does it make sense for me to use KinD or should I be using kubeadm?

  3. If the above is sane, is there a way for me to quickly spin up 3 VMs and have all dependencies installed? something like code as infrastructure, since I’m sure i’ll be breaking the VMs often and will often need to resetup them, would Ansible/Terraform/Vagrant be viable options?

  4. Finally, once I’m confortable with the local multi-node cluster I got, how easy would it be to move everything to either cloud (aws) or bare metal (i got 2 laptops laying around)? And are there good practices or stuff I need to do from the get to, to make sure i can easily move my cluster (or the setup/config at least)?

  5. The main premise of the project, is the expose an API to control kubernetes and deployment of containers from a web app. This should probably be the first question, but is that feasible?

Yup it is feasable :slight_smile: You’ll want to look at the various Kubernetes Client Libraries.

KinD would let you do what you’re looking to do without having to create the VMs, you can create a multi-node cluster with it. If you’re looking for the fasted/easiest way to get started - KinD is it. If you do want to go the VM route, and want to simulate tear-down etc, than probably a multi-machine vagrant setup would work.

As long as your yaml manifests are stored some place, and you’re not looking to migrate any persistent data - it should be minimal to no real changes required. That is one of the big benefits of Kubernetes, its portable across environments.

Thanks a lot for your input! I have managed to setup a multi-node cluster with Vagrant & successfully installed the K8s dashboard. Slowly but steadily :slight_smile: