Environment and bootstrap options
Kubernetes clusters can be deployed in many different environments and bootstrapped in several ways. The tables below show a range of host platforms and cluster bootstrap combinations to choose from.
info
Throughout the Sphere, I use combinations of Parallels VMs, bare-metal Ubuntu, and Kubespray (Ansible) for development and production clusters.
Host platforms
Environment and virtualisation layer.
This is the host platform and how compute is provided.
| Environment type | Ubuntu | macOS | Windows |
|---|---|---|---|
| Bare metal / native | Yes | No | No |
| WSL2 Linux layer | N/A | N/A | Yes |
| Parallels VMs | N/A | Yes | N/A |
| VirtualBox VMs | Yes | Yes | Yes |
| Hyper-V VMs | Yes | N/A | Yes |
| VMware Fusion / Workstation | Yes | Yes (Fusion) | Yes (Workstation) |
| VMware ESXi (bare-metal HV) | Remote host | Remote host | Remote host |
| Multipass (Ubuntu VMs) | Yes | Yes | Yes |
| Colima (macOS VM runtime) | N/A | Yes | N/A |
Cluster bootstrap options
Cluster bootstrap or distribution.
| Bootstrap or distribution | Description | Suitable for |
|---|---|---|
| kind | Kubernetes in Docker containers. | Fast development, CI, testing. |
| k3d | k3s in Docker containers. | Fast development, low-memory laptops. |
| k3s | Lightweight Kubernetes (single binary). | Small clusters, edge, labs. |
| MicroK8s | Canonical’s self-contained Ubuntu Kubernetes. | Development clusters. |
| minikube | Local single-node Kubernetes with multiple drivers. | Beginners, exploratory testing. |
| Rancher Desktop | Graphical user interface (GUI) managed Kubernetes. | Simple and visual use. |
| Docker Desktop Kubernetes | Toggle-on Kubernetes from Docker Desktop. | Simple but heavier. |
| kubeadm | Upstream installer. | Learning production-style lifecycle. |
| Kubespray (Ansible) | High availability (HA) multi-node automation. | Real clusters, repeatable builds. |
| Talos Linux | Immutable OS with a cluster API. | Advanced operations. |
Common pairings
Environment and bootstrap combined.
| Environment (table above) | Cluster bootstrap | Outcome or notes |
|---|---|---|
| Docker runtime | kind or k3d | Fast dev loop, great for local testing. |
| Parallels VMs (macOS) | Kubespray | HA multi-node, repeatable builds, my setup. |
| Parallels VMs (macOS) | kubeadm | Close to production, manual control. |
| Parallels VMs (macOS) | k3s | Light footprint, easy multi-node. |
| Multipass VMs | k3s or kubeadm | Portable development clusters. |
| WSL2 Linux | kind / k3d / k3s | Solid Windows developer workflow. |
| Bare-metal Ubuntu | Kubespray | Physical cluster, networking, and storage. |
| VMware ESXi (remote host) | kubeadm or Kubespray | Production-like on a dedicated hypervisor. |
| Any VM stack | Talos Linux | Immutable cluster, Git-driven operations. |
Notes.
- ESXi is a separate bare-metal hypervisor. You manage it from Ubuntu, macOS, or Windows, but it does not run on those operating systems.
- On ESXi you provision VMs, then install Kubernetes using kubeadm, Kubespray, k3s, or Talos as usual.