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
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)
✅ 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
Post a Comment