Combining Vagrant and KinD for Kubernetes fun
While I was kicking the tires on Kubernetes last year, I looked around for ways to play with it, but leave as little impact on my workstation as possible. I’d wanted to make an ephemeral sandbox, so I could safely play with any number of fun stuffs on ArtifactHub, and also encourage myself to capture some level of automation for my experiments.
I’m a big fan of Vagrant for just such a sandbox. I’ve been using Vagrant since I first saw it demonstrated LIVE by Patrick Debois at a “Lightning Talk” at DevOpsDays in 2011. It’s still great, and has been helping to keep me from destroying my desktop OS ever since then! :D
I found a neat project called Kubernetes in Docker. KinD uses Linux containers in lieu of using virtual machines when creating and configuring Kubernetes worker nodes. So, I wanted to play with this, while keeping the “host OS” of my workstation and laptops unsullied by my experiments.
And so, Vagrant-Kind was born. The Vagrantfile sets up:
- An Ubuntu VM instance (using either Hyper-V (Windows) or VirtualBox)
- Docker
- KinD
- kubectl
As time permits, I’ve added simple bash code in the extras directory. Files here can be run from within the Ubuntu VM’s shell, via the /vagrant/
mountpoint. I do wish to improve the quality of that code - right now, your best bet for getting off the ground is to run the dashboard.sh
shell script there.
I hope Vagrant-KinD helps you as much as it helped me explore Kubernetes… safely, from a distance! ;) Any problems or feature requests? Please add them at the Vagrant-KinD issues page. Pull Requests very welcome, too!