Skip to content

Stands up a certified multi-VM Kubernetes development cluster on your Linux desktop using KVM or VirtualBox, by running a single Bash script. A config yaml supports different cluster configs.

License

Notifications You must be signed in to change notification settings

aceeric/desktop-kubernetes

Repository files navigation

Desktop Kubernetes

Desktop Kubernetes is a Linux Bash CLI that provisions a Kubernetes cluster right on your desktop using KVM or VirtualBox - with each cluster node consisting of a guest VM running any of: Alma, CentOS, or Rocky Linux. The goal is to create a local development and testing environment that is 100% compatible with a production-grade Kubernetes environment.

Desktop Kubernetes is the 57 Chevy of Kubernetes distros: you can take it apart and put it back together with just a few Linux console tools: bash, curl, ssh, scp, tar, openssl, helm, yq, kvm tools (virsh, virt-install, qemu-img), and kubectl. That being said, v1.33.1 of this distribution is Kubernetes Certified. See: CNCF Landscape.

This project started as a way to automate the steps in Kelsey Hightower's Kubernetes The Hard Way - just to see if I could. But at this point I pretty much rely on it for all my local Kubernetes development. I use it on a couple of different Ubuntu 24.04.X systems with 64 gigs of RAM and 6+ hyper-threaded processors.

Quick Start

The dtk script in the repo root is the Desktop Kubernetes CLI.

The first time, run with just the --check-compatibility option to check the installed versions of the tools used by Desktop Kubernetes (curl, etc.) against the tested versions. E.g.:

./dtk --check-compatibility

There will likely be differences and you have to decide whether the differences are material. Slight version differences may not matter, but for sure you need all the listed tools. In keeping with the project philosophy of not modifying your desktop - you need to install the tools listed in order to use this project. Desktop Kubernetes will not alter your desktop.

See the full documentation (link below) to know which tools are specific to KVM vs VirtualBox.

The dtk script in the repo root is what you run. If you supply no arguments, the script will use KVM to provision and configure a cluster based on the config.yaml file in the repo root resulting in a three node Alma Linux cluster consisting of one controller and two workers.

Once the cluster comes up, the script will display a message telling you how to set your KUBECONFIG environment variable to access the cluster. It will also display a message showing how to SSH into each node. (There's also a helper script sshto that you can use for that.)

Full Documentation

Please see https://aceeric.github.io/desktop-kubernetes for the full documentation.

About

Stands up a certified multi-VM Kubernetes development cluster on your Linux desktop using KVM or VirtualBox, by running a single Bash script. A config yaml supports different cluster configs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •