ConfigsApr 15, 2026·3 min read

k0s — Zero Friction Kubernetes Distribution

Mirantis' single-binary Kubernetes distro with etcd, containerd, and CNI baked in. From a Raspberry Pi edge cluster to FIPS-validated production HA.

TL;DR
k0s is a single-binary Kubernetes distro with everything baked in, from edge Raspberry Pi to production HA clusters.
§01

What it is

k0s is a Kubernetes distribution by Mirantis that ships as a single binary with etcd, containerd, and CNI networking included. There is nothing to install separately. It runs on any Linux host, from a Raspberry Pi edge node to a multi-node production cluster with high availability. k0s is CNCF certified and supports FIPS-validated deployments.

k0s is designed for platform teams, edge computing deployments, and anyone who wants a minimal-footprint Kubernetes cluster without the complexity of kubeadm or managed services.

§02

How it saves time or tokens

Setting up Kubernetes with kubeadm requires installing container runtimes, configuring etcd, setting up networking, and managing certificates separately. k0s eliminates all of that. A single curl | sh installs everything, and k0s install controller --single gives you a working cluster in under a minute. For edge deployments where resources are limited, k0s's minimal footprint means you can run Kubernetes on hardware that would struggle with other distributions.

§03

How to use

  1. Install k0s on the first control plane node:
curl -sSLf https://get.k0s.sh | sudo sh
sudo k0s install controller --single
sudo k0s start
  1. Get the kubeconfig:
sudo k0s kubeconfig admin > ~/.kube/config
kubectl get nodes
  1. For a multi-node cluster, generate a join token and add workers:
sudo k0s token create --role worker > worker-token
# On worker node:
sudo k0s install worker --token-file worker-token
sudo k0s start
§04

Example

Deploying a simple application on k0s:

# After k0s is running
kubectl create deployment nginx --image=nginx:alpine --replicas=3
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc nginx
# Access via NodePort on any cluster node

k0s works with standard kubectl and all Kubernetes resources. There is no k0s-specific API to learn.

§05

Related on TokRepo

§06

Common pitfalls

  • Using --single mode in production. The single-node mode is convenient for development but provides no high availability. Production clusters should use separate controller and worker nodes.
  • Not opening required firewall ports between nodes. k0s needs port 6443 (API), 4789 (VXLAN), and 10250 (kubelet). Blocked ports cause nodes to fail joining.
  • Forgetting that k0s manages its own containerd instance. If you already have containerd installed, k0s uses its bundled version, not your system installation. This avoids conflicts but can be confusing.
  • Starting with an overly complex configuration instead of defaults. Begin with the minimal setup, verify it works, then customize incrementally. This approach catches configuration errors early and keeps troubleshooting straightforward.

Frequently Asked Questions

How is k0s different from k3s?+

Both are lightweight Kubernetes distributions. k0s ships as a single binary with etcd included (not SQLite), supports FIPS compliance, and is backed by Mirantis. k3s by Rancher uses SQLite by default and focuses on IoT and edge. k0s positions itself for both edge and enterprise production workloads.

Does k0s support high availability?+

Yes. k0s supports multi-controller HA setups with etcd. You deploy multiple control plane nodes and put a load balancer in front. The built-in etcd handles leader election and state replication.

Can I run k0s on a Raspberry Pi?+

Yes. k0s supports ARM64 and has a minimal resource footprint. It runs on Raspberry Pi 4 and newer models. The single-binary design means there are no complex dependency chains to manage on resource-constrained hardware.

Is k0s CNCF certified?+

Yes. k0s is a certified Kubernetes distribution, meaning it passes the CNCF conformance tests and is fully compatible with the Kubernetes API and ecosystem tools.

How do I upgrade k0s?+

k0s provides an autopilot controller that handles rolling upgrades across the cluster. You apply an upgrade plan as a Kubernetes resource, and the autopilot coordinates the upgrade node by node without downtime.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets