Rancher Labs has been busy shrinking Kubernetes down to size. This week, the Silicon Valley-based startup launched K3s, a lightweight version of Kubernetes that weighs-in at only 40MB.
Originally developed by Google for use in its cloud, the open source Kubernetes container orchestration engine has become the unofficial standard for managing containers, the technology that has largely made the cloud attractive to enterprises with complex systems. This is because containers can be instantly deployed and removed on-the-fly and across platforms.
K3s's smaller size makes it a better fit for edge deployments, where connectivity and compute are physically located as close as possible to connected devices to deal with issues such as latency. Driven by the Internet of Things, along with telecoms rush to 5G (which will require even more edge deployments), the edge has become the fastest growing component of the internet.
Both of these drivers are also making systems on the edge more complex, since much of what happens on the edge stays on the edge. By one estimate, nearly 70 percent of the data generated in edge deployments is processed at the edge and never sees a centralized data center or cloud.
Edge resources are often limited, however, making Kubernetes' average 4GB minimum RAM use -- which is not a problem in a data center or public cloud -- a limiting factor for edge computing. The folks at Rancher are betting that K3s's smaller footprint will be valuable both for edge-based servers and even more constrained connected devices, i.e. anything from assembly line robots to smartphones to connected automobiles.
"You only need 512MB of memory to run the whole thing," Rancher's co-founder and CEO, Sheng Liang, said. "I see people run very small clusters with it, or even a single node cluster."
Kubernetes has a reputation as being difficult to operate, which is something of a problem even in well-staffed data centers, and can be a larger hurdle at edge locations, such as branch offices or factory floors, where qualified IT staff might be a scarce commodity.
"We've done a lot of things to make it very easy to run and very easy to manage," Liang said, "pretty much like a lights-out, hands-off kind of operation. A lot of things we did to simplify was to remove unused code that Kubernetes accumulated over the years and drivers that you don't necessarily need for your distro. We can always dynamically load the drivers that people need."
Another big ease-of-use change is that K3s offers users the ability to easily switch out etcd, Kubernetes' distributed storage software for storing data across a cluster of machines.
"One of the most difficult parts of managing Kubernetes is managing etcd, so we added an option to run SQLite, the really lightweight, simple database, for smaller Kubernetes clusters," he said. "Of course, for large scale high availability deployments you would still use etcd."
Liang said that although K3s isn't yet ready for production, they have been actively working with customers to push development and that a 1.0 version is imminent.
"I don't think it will take very long," he said. "We're working pretty closely with some early stage customers and as soon as they feel comfortable with that, we'll be able to support it and it will be generally available."
Eventually, he said, K3s will be integrated into the company's eponymous container management platform, alongside its traditional Kubernetes offering.
It's also going to be kept up-to-date with changes made upstream.
"We will merge upstream Kubernetes releases into K3s as they become available," Liang said. "Today it takes very little effort to merge minor releases and takes more effort (several days) to merge a major release like 1.14."
"We plan to work with Kubernetes community to upstream the necessary changes to make future merges easier."
And for those wondering about the name...
Devs often refer to Kubernetes as K8s using an old method for shortening long application names. Rancher's GitHub page for the project notes that K3s is "5 less than K8s," hence "lightweight Kubernetes."
The naming convention, however, which uses the first and last letter of the project name with a numeral in-between for the number of letters omitted, would suggest that K3s shortens to "Kubes," which is also somewhat appropriate.
K3s supports x86_64, ARMv7, and ARM64 architectures and is currently available for download from Rancher Labs.