Rancher Labs, a leading provider of container management software, today announced K3s,
a lightweight Kubernetes distribution designed for developers and
operators looking for a way to run Kubernetes in resource-constrained
environments. Rancher Labs launched
the project to address the increasing demand for small, easy to manage
Kubernetes clusters running on x86, ARM64 and ARMv7 processors in edge
computing environments.
"Existing
Kubernetes distributions are often memory intensive and overly complex
for edge computing environments," said Sheng Liang, CEO and co-founder
of Rancher Labs. "In the last year we've worked with dozens of teams who
see Kubernetes as an ideal platform for managing edge infrastructure
but have been reluctant to commit a large portion of resources in their
edge devices to run a full-fledged Kubernetes platform. With K3s, we can
provide these teams with a distribution of Kubernetes that requires
less than 512 MB of RAM, and is ideally suited for edge use cases. We
see significant demand for K3s among organizations in the retail,
finance, telco, utility and manufacturing sectors."
How K3s reduces the size of Kubernetes
To
reduce the memory required to run Kubernetes, the engineering team at
Rancher Labs developing K3s focused on four primary changes:
- Removing old and non-essential code: K3s
does not include any alpha functionality that is disabled by default or
old features that have been deprecated, such as old API groups, which
are still shipped in a standard deployment. Rancher also removed all
non-default admission controllers, in-tree cloud providers, and storage
drivers, opting instead to allow users to add in any drivers they need.
- Consolidating the packaging of running processes: To
conserve RAM, Rancher combined the processes that typically run on a
Kubernetes management server into a single process. Rancher has also
combined the Kubelet, kubeproxy and flannel agent processes that run on a
worker node into a single process.
- Using containerd instead of Docker as the runtime container engine: By
substituting containerd for Docker, Rancher was able to cut the runtime
footprint significantly, removing functionality like libnetwork, swarm,
Docker storage drivers and other plugins.
- Introducing SQLite as an optional datastore in addition to etcd: Rancher
added SQLite as optional datastore in K3s to provide a lightweight
alternative to etcd that has both a lower memory footprint, as well as
dramatically simplified operations.
An Ideal Kubernetes Distribution for Low-Touch Operations
As
Kubernetes pushes out to the edge, the number of Kubernetes clusters a
team is operating is increasing rapidly. In many of the most interesting
edge use cases, organizations will run thousands of one, two or three
node Kubernetes clusters. To support the operators who will be
responsible for managing that scale of infrastructure, K3s was designed
to maximize the simplicity of installation and operations.
Key features include:
- Production-grade Kubernetes: K3s is a standards-compliant, Kubernetes distribution engineered for mission-critical, production use cases.
- One binary with zero host dependencies: Everything
necessary to install Kubernetes on any device is included in a single,
40mb binary. There is no requirement for an external installer like
KubeSpray, KubeADM or RKE. With a single command, a single-node K3s
cluster can be provisioned or upgraded.
- Simple to add nodes to a cluster: To
add additional nodes to a cluster, admins run a single command on the
new node, pointing it to the original server and passing through a
secure token.
- Automatic certificate generation: All
of the certificates needed to establish TLS between the Kubernetes
masters and nodes are automatically created when a cluster is launched.
Encryption keys for service accounts are also automatically created.
Rancher
Labs is simultaneously releasing K3s with support for x86_64, ARM64 and
ARMv7 architectures, making it flexible enough to work across any edge
infrastructure. In addition to edge use cases, Rancher anticipates K3s
will appeal to any users looking for a simple way to deploy lightweight
distribution of Kubernetes. During early previews, many users found it
especially useful for CI/CD environments, embedded systems and local
Kubernetes deployments.
"With
more than 30,000 wind turbines in production, we are excited to see the
creation of K3s, which can potentially allow us to deploy Kubernetes
clusters on thousands of edge locations," said Wei Zhang, VP of
technology at Goldwind Smart Energy, the world's second largest wind
turbine manufacturer.
Developers
who are interested in downloading, installing and playing with this new
lightweight Kubernetes distribution should visit https://k3s.io or follow the project on https://github.com/rancher/k3s