github.com/k3s-io/k3s ↗
Lightweight Kubernetes
Open this visualization on its own page →
Contributors
172
Lines of Code
75,473
From
2019-01-01
To
2022-06-15
About k3s-io/k3s
K3s is a lightweight Kubernetes distribution designed to reduce resource consumption and complexity while maintaining full Kubernetes compliance. It packages Kubernetes into a single binary under 100 MB with roughly half the memory footprint of standard Kubernetes, making it ideal for edge devices, IoT applications, embedded systems, CI/CD environments, and ARM-based hardware where traditional Kubernetes deployments are impractical.
The project achieves its lightweight profile through several key design decisions. Rather than being a fork, K3s is an opinionated distribution that bundles carefully selected components including Containerd, Flannel for networking, CoreDNS, Traefik for ingress, and other services into a cohesive package with sensible defaults for lightweight environments. It reduces binary size by removing in-tree storage drivers and cloud provider code in favor of out-of-tree alternatives like CSI and CCM. K3s also consolidates multiple Kubernetes components into single processes to eliminate duplicated overhead and uses SQLite3 as the default datastore rather than etcd, though etcd and other databases are supported.
K3s maintains close alignment with upstream Kubernetes through a minimal patch set and coordinates releases with the Kubernetes schedule. The project is written in Go and developed by the CNCF-affiliated K3s community, which maintains active communication channels and regular developer meetings. It includes automatic TLS certificate management, worker-to-server connection handling, and manifest auto-deployment capabilities to simplify cluster operations in constrained environments.