Rancher’s K3S, a slimmed-down Kubernetes distribution for resource-constrained environments such as edge deployments, joined the Cloud Native Computing Foundation (CNCF) today at the sandbox level. Launched in February 2019, K3S has already been downloaded more than a million times and currently enjoys more than 20,000 installs per week. Shannon Williams, Rancher Labs co-founder and president, explained in an interview that its ease of use and simple packaging really led to its immediate popularity.
“When we first built K3S, we built this idea that you could build a fully compliant, fully certified Kubernetes distribution that was lightweight and small enough to run on single node type deployments – edge devices and people’s laptops. Kubernetes is quite powerful, but also quite complex to build at scale. You build something that can run 5,000 nodes, it’s going to be a little more complex than what you want to run on a single machine, and so we really built it with a lot of very sane defaults and easy deployments. When people found it, it was like, ‘Finally, this makes Kubernetes really easy, Kubernetes can be run by anyone and with very little overhead and cost.’ K3S just took off from there,” Williams said.
The project becomes the first Kubernetes distribution to join the CNCF, a point that led to some debate during the submission proposal, with some questioning whether K3S should be a subproject of Kubernetes instead. In the end, K3S was accepted into the CNCF sandbox and the question of its categorization was punted down the road for a potential future debate. The K3S repository succinctly summarizes the project as a lightweight Kubernetes that is “production-ready, easy to install, half the memory, all in a binary less than 100MB,” and Williams compares this to the default expectations for Kubernetes.
“Historically, we thought of Kubernetes as this great way to balance workloads and maximize utilization and deal with infrastructure failure, but as we standardize, it becomes a really great way to run a single machine,” said Williams. “You can certainly run a container on a single machine without Kubernetes, but by using Kubernetes, I can run a bunch of services on that machine, I can upgrade them easier, I can connect them easier. I can take microservices architectures and componentized software and bring it down to literally almost the smallest footprint possible: a single machine, a single node.”
K3S packages all of the non-containerized Kubernetes components into a single 40MB binary with the only dependencies being “a sane kernel and cgroup mounts needed,” and adds support for sqlite3 as the default storage backend, with support for Etcd3, MySQL, and Postgres. While K3S starts by default with a single node on a single cluster, Williams emphasized that it is capable of running at a much greater scale if desired, with some cloud providers actually using K3S as their preferred Kubernetes distribution. It also has a small memory footprint, and its ability to run on a large variety of hardware makes it stand out.
“It’s also optimized in terms of how it does networking and load balancing and other services for a small footprint. It’s both footprint optimized, but also use case optimized for embedded devices, laptops, edge locations, and really anywhere someone needs a simple, easy-to-deploy Kubernetes,” said Williams. “If Kubernetes runs on a fridge, on the telco network, in the data center, in the cloud, the commonality allows for a lot easier DevOps, a lot easier software distribution, to have a universal control. It’s almost like having the browser on all laptops. It gives me a common thing that I can write applications for and write applications using.”
For that universal control, Williams pointed not only to Rancher itself but also to another open source project by Rancher, Fleet, which it describes as “a Kubernetes cluster fleet controller specifically designed to address the challenges of running thousands to millions of clusters across the world.”
The idea of a slimmed-down Kubernetes appears to call into question what exactly constitutes Kubernetes, and to this Williams referred to the Kubernetes API as the core component.
“The way the CNCF has built the certification program for Kubernetes distributions has made it really clear that the implementation of technology is important, but not nearly as important as the capability in the APIs,” said Williams. “If it walks like Kubernetes and sounds like Kubernetes and runs like Kubernetes, and you’re exposing the Kubernetes capabilities, you’re Kubernetes. It’s an API oriented approach that says that the functionality is what’s key.
The Cloud Native Computing Foundation is a sponsor of The New Stack.