Lightweight Kubernetes Options for local development on an Ubuntu machine

 



Kubernetes is the de facto standard for container orchestration, but running a full-fledged Kubernetes cluster locally can be resource-intensive. Thankfully, there are several lightweight Kubernetes distributions perfect for local development on an Ubuntu machine. In this blog, we’ll explore the most popular options—Minikube, K3s, MicroK8s, and Kind—and provide a step-by-step guide for getting started with them.

1. Minikube: The Most Popular and Beginner-Friendly Option



https://minikube.sigs.k8s.io/docs/

Use Case: Local development and testing

Pros:

  • Easy to set up
  • Supports multiple drivers (Docker, KVM, VirtualBox)
  • Works seamlessly with Kubernetes-native tooling

Cons:

  • Slightly heavier when using virtual machines
  • Requires Docker or another driver

Installing Minikube on Ubuntu:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Starting a Cluster:

minikube start --driver=docker

Verifying the Cluster:

minikube status
kubectl get nodes

Deploying a Sample App:

kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
kubectl expose deployment hello-minikube --type=NodePort --port=8080
minikube service hello-minikube

Stopping and Deleting the Cluster:

minikube stop
minikube delete

Minikube FAQ:

Q: Can I use Minikube without Docker? A: Yes! Minikube supports other drivers like VirtualBox and KVM.

Q: How much memory does Minikube need? A: By default, Minikube uses 2GB of memory, but you can adjust it with --memory.


2. K3s: Lightweight Kubernetes with Minimal Resource Usage



https://k3s.io/

Use Case: Edge computing, IoT, lightweight dev environments

Pros:

  • Extremely lightweight (~50MB binary)
  • Optimized for low-resource environments

Cons:

  • Uses SQLite instead of etcd by default

Installing K3s:

curl -sfL https://get.k3s.io | sh -

Verifying the Cluster:

sudo k3s kubectl get nodes

Deploying a Sample App:

sudo k3s kubectl create deployment hello-k3s --image=kicbase/echo-server:1.0
sudo k3s kubectl expose deployment hello-k3s --type=NodePort --port=8080

Checking the Service:

sudo k3s kubectl get services

K3s FAQ:

Q: Does K3s support multi-node clusters? A: Yes, K3s supports multi-node clusters with lightweight agents.

Q: What’s the default database in K3s? A: K3s uses SQLite by default but can be configured for etcd or MySQL.


3. MicroK8s: Canonical’s Lightweight Kubernetes






Use Case: Local development, CI/CD pipelines

Pros:

  • No virtual machines required
  • Easy clustering with microk8s join

Cons:

  • Uses Snap, which may auto-update unless configured otherwise

Installing MicroK8s:

sudo snap install microk8s --classic

Verifying the Cluster:

microk8s status --wait-ready

Enabling Essential Add-ons:

microk8s enable dns dashboard

Deploying a Sample App:

microk8s kubectl create deployment hello-microk8s --image=kicbase/echo-server:1.0
microk8s kubectl expose deployment hello-microk8s --type=NodePort --port=8080

MicroK8s FAQ:

Q: Does MicroK8s work without Snap? A: No, MicroK8s is distributed as a Snap package.

Q: How do I access the Kubernetes dashboard in MicroK8s? A: After enabling the dashboard, use microk8s dashboard-proxy to access it.


4. Kind: Kubernetes IN Docker




Use Case: CI environments, quick Kubernetes cluster testing

Pros:

  • Uses Docker containers instead of VMs
  • Fast and efficient

Cons:

  • Limited networking options

Installing Kind:

curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

Creating a Cluster:

kind create cluster

Verifying the Cluster:

kubectl get nodes

Deleting the Cluster:

kind delete cluster

Kind FAQ:

Q: Does Kind support multi-node clusters? A: Yes, Kind can create multi-node clusters using Docker containers.

Q: Can I use Kind in production? A: Kind is designed for testing and development, not production use.


Which One Should You Choose?

  • For simplicity and compatibility: Minikube
  • For minimal resource usage: K3s
  • For Ubuntu-native support: MicroK8s
  • For fast, Docker-based clusters: Kind

Each of these lightweight Kubernetes distributions offers unique advantages, so pick the one that best aligns with your workflow. Need help with advanced Kubernetes setups? Let’s discuss in the comments!


Complete List of Kubernetes Options for Local Development and Testing

  • Minikube
  • K3s
  • MicroK8s
  • Kind (Kubernetes IN Docker)
  • k0s
  • Docker Desktop Kubernetes
  • Rancher Desktop
  • OpenShift Local (CRC)
  • kubeadm (manual cluster setup)




📢 Book a 1:1 session with Shyam Mohan K and get:
✅ A personalized DevOps roadmap tailored to your experience
✅ Hands-on guidance on real-world DevOps tools
✅ Tips on landing a DevOps job and interview preparation














Comments

Popular posts from this blog

DevOps Learning Roadmap Beginner to Advanced

What is the Difference Between K3s and K3d

Open-Source Tools for Kubernetes Management