Yesterday, Rancher Labs announced K3s, a lightweight Kubernetes distribution to run Kubernetes in a resource-constrained environment. According to the official blog post, this project was launched to “address the increasing demand for small, easy to manage Kubernetes clusters running on x86, ARM64 and ARMv7 processors in edge computing environments”.
To operate an edge computing on Kubernetes is a complex task. K3s will reduce the memory required to run Kubernetes and provide developers with a distribution of Kubernetes that requires less than 512 MB of RAM, ideally suited for edge use cases.
Features of K3s
#1 Simplicity of Installation
K3s was designed to maximize the simplicity of installation and operations on a large scale Kubernetes cluster. It is a standards-compliant, Kubernetes distribution for “mission-critical, production use cases”.
#2 Zero Host dependencies
There is no requirement for an external installer to install Kubernetes–everything necessary to install it on any device is included in a single, 40MB binary. A single command will enable the single-node k3s cluster to be provisioned or upgraded. Nodes can be simply added to the cluster running a single command on the new node, pointing it to the original server and passing through a secure token.
#3 Automatic certificate and encryption key generation
All of the certificates needed to establish TLS between the Kubernetes masters and nodes, as well as the encryption keys for service accounts are automatically created when a cluster is launched.
#4 Reduces Memory footprint
K3s reduces the memory required to run Kubernetes by removing old and non-essential code and any alpha functionality that is disabled by default. It also removes old features that have been deprecated, non-default admission controllers, in-tree cloud providers, and storage drivers. Users can add in any drivers they need.
#5 Conservation of RAM
Rancher’s K3s combines the processes that run on a Kubernetes management server into a single process. It also combines the Kubelet, kubeproxy and flannel agent processes that run on a worker node into a single process. Both of these techniques help in conserving RAM.
#6 Reducing runtime footprint
Rancher labs were able to cut down the runtime footprint significantly by using containerd instead of Docker as the runtime container engine. Functionalities like libnetwork, swarm, Docker storage drivers and other plugins have also been removed to achieve this aim.
#7 SQLite as an optional datastore
To provide a lightweight alternative to etcd, Rancher added SQLite as optional datastore in K3s. This was done because SQLite has “a lower memory footprint, as well as dramatically simplified operations.”
Kelsey Hightower, a Staff Developer Advocate at Google Cloud Platform, commended Rancher Labs for removing features, instead of adding anything additional, to be able to focus on running clusters in low-resource computing environments.
I like the way @rancher_labs has taken a fresh look at Kubernetes by removing, not adding, features to focus on running in low-resource computing environments such a retail stores and telco facilities. https://t.co/wAih5qq8Mi
— Kelsey Hightower (@kelseyhightower) February 27, 2019
Kubernetes users have also welcomed the news with enthusiasm.
Lightweight #Kubernetes project – It will be interesting to see how it will grow. #Rancher is doing more and more to community – really impressive @Rancher_Labs – keep doing good work!
— Tomasz Szostak (@toszos) February 26, 2019
#k3s will help to reduce #AWS #GoogleCloud in short infrastructure cost. Great project by @Rancher_Labs team.https://t.co/SQhFx1efPA pic.twitter.com/sFyKG2IsSO
— Ashim Saha (@ashim_k_saha) February 27, 2019
K3s is released with support for x86_64, ARM64 and ARMv7 architectures, to work across any edge infrastructure. Head over to the K3s page for a quick demo on how to use the same.
Red Hat announces CodeReady Workspaces, the first Kubernetes-Native IDE for easy collaboration among developers
Introducing Platform9 Managed Kubernetes Service
CNCF releases 9 security best practices for Kubernetes, to protect a customer’s infrastructure