A lightweight local Kubernetes environment that mimics an AWS EKS cluster using MicroK8s running in a Multipass virtual machine.
MicroEKS provides a simple way to deploy a local Kubernetes environment on macOS, Linux, and Windows that resembles an AWS EKS cluster. It's perfect for:
- Local development and testing of Kubernetes applications
- Learning Kubernetes without cloud costs
- Testing EKS-specific configurations locally
- macOS (Intel or Apple Silicon), Linux, or Windows
- Multipass: The tool will attempt to install it automatically if missing on supported platforms (macOS/Homebrew, Linux/Snap).
The easiest way to install MicroEKS is via Homebrew.
-
Add the Tap:
brew tap arunsanna/tap
-
Install MicroEKS:
brew install micro-eks
-
Verify Installation:
micro-eks --help
To update to the latest version:
brew upgrade micro-eksDownload the latest binary for your operating system (Windows, macOS, Linux) from the Releases page.
To build the binary locally from source (requires Go 1.21+):
git clone https://github.com/arunsanna/MicroEKS.git
cd MicroEKS
go build -o bin/micro-eks ./cmd/micro-eks-
Create a new environment:
micro-eks create --memory 16G --disk 100G --channel 1.28/stable
-
Access the cluster:
export KUBECONFIG=~/.kube/config-microk8s kubectl get nodes
- create: Deploy a new VM with customizable memory, disk space, Kubernetes version, and addons.
- start: Start an existing MicroEKS VM.
- stop: Stop a running MicroEKS VM.
- destroy: Remove the VM and clean up resources.
- status: Check the current status of your MicroEKS environment.
--memory: VM memory (default: 16G)--disk: VM disk size (default: 100G)--channel: MicroK8s channel (default: 1.28/stable)--addons: Comma-separated list of addons (default: dns,dashboard,storage,ingress)
kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443Then visit: https://127.0.0.1:10443 in your browser
micro-eks destroyThis will:
- Delete the Multipass VM
- Remove the kubeconfig file
- Clean up all related resources
If you encounter "connection refused" errors when trying to use kubectl, ensure:
- The VM is running (
micro-eks statusormultipass info eks-vm) - Your KUBECONFIG is correctly set
- The IP address in
~/.kube/config-microk8smatches the VM's IP (multipass info eks-vm | grep IPv4)
To completely reset your environment:
micro-eks destroy
micro-eks createMIT