The open-source Kubernetes container orchestration platform has become a de facto standard for cloud-native computing, but there is at least one catch--it's not optimized by default for edge use cases.
On Feb. 26, Rancher Labs formally announced the launch of the open-source K3S effort that builds a lightweight implementation of Kubernetes that requires only a fraction of the storage and memory footprint of a regular Kubernetes installation. Kubernetes is also often referred to as K8S, and K3S is all about being a smaller version that takes less than half the size.
"We really have two goals with K3S: make Kubernetes small and consume less memory, and the other is make it really dead simple to operate," Sheng Liang, co-founder and CEO of Rancher Labs, told eWEEK.
Rancher Labs is a container management platform vendor that has its own full-sized container orchestration platform simply known as Rancher that was rebased on Kubernetes in October 2017.
Liang said that the drive to build a lightweight Kubernetes distribution with K3S was born out of real needs he has seen from organizations in the field. In one case, an organization wanted to deploy Kubernetes on edge infrastructure but was somewhat challenged due to the memory required to run Kubernetes and the resource constraints of the edge system. Edge computing is an increasingly common deployment model for computing capabilities. Rather than having all analysis and workloads running in a central core server or cloud, with edge computing, resources at the edge of the network handle various tasks.
Making Kubernetes Smaller
Kubernetes is a large project that includes many different subsystems, drivers and extensions that enable it manage container workloads and connect to different services. Not all of those components are needed for edge computing use cases, according to Liang.
The memory required to run Kubernetes can vary, though an average of 4GB of RAM is typical as a minimum. With K3S, the entire platform can run in less than 512MB of RAM.
Liang explained that K3S gets rid of unneeded components by removing code that is legacy and not required for operations. He added that in-tree support for various cloud providers for storage, networking and load balancing was also removed, which represented much of the size reduction. In-tree support refers to code that is integrated with the main Kubernetes release as opposed to just being an optional extension that an organization could choose to load. Liang noted that much of the cloud support that a Kubernetes user might need today is also available via a pluggable driver.
"So you could still use K3S on Amazon and it will still manage to load everything," Liang said.
The other big thing that K3S removes is the etcd distributed file storage system. Etcd is a core component of Kubernetes and provides a mechanism that enables data to be stored in a stable, reliable and consistent way across a cluster of different machines. K3S replaces etcd with an SQLite database that Liang said makes a significant difference in the resources required to run Kubernetes.
Even with all the code that K3S reduces and removes from the mainline Kubernetes release, K3S is still able to pass Kubernetes compliance tests, which enables it to interoperate with other Kubernetes platforms and distributions. K3S is still in its early days, but Liang said that as it matures and stabilizes, he's hopeful that Rancher Labs will offer a commercially supported implementation of K3S.
"K3S is not quite ready for production use, and now we just want to see if there is interest in the community," Liang said.
Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.