Rancher Labs unveiled a lightweight instance of Kubernetes designed to be deployed in production IT environments that have limited access to compute resources or simply require access to a finite number of specific functions.
Company CEO Sheng Liang says the primary use cases for its K3s distribution of Kubernetes—which requires less than 512MB of memory—will fall into the realms of edge computing and packaged applications.
Interest in deploying instances of Kubernetes on bare-metal servers to drive everything from internet of things (IoT) deployments to next-generation 5G wireless networking applications is rising sharply. These latency-sensitive applications need platforms such as Kubernetes to have the smallest amount of footprint possible to free up resources for multiple applications.
In fact, one of the things that differentiates emerging edge-computing use cases is the number of applications being deployed. Historically, each platform ran a single application. But next-generation edge computing platforms are expected to be able to run cloud-native multiple applications—one of the primary factors driving adoption of Kubernetes as an orchestration platform at the network edge, Liang says.
The second dominant use case involves providers of packaged applications that need a lightweight distribution of Kubernetes they can embed in their applications to enable an application to run anywhere, says Liang.
The K3s distribution of Kubernetes is currently available in preview mode running on both Intel and Arm processors. Long-term, Rancher envisions deployments of potentially thousands of instances of a lightweight distribution of Kubernetes driving additional demand for the centralized management platform developed by Rancher Labs, Liang says.
To create K3s, the development team at Rancher Labs removed all old and and non-essential code form the platform. K3s does not include any alpha functionality that is disabled by default or features that have been deprecated, such as old application programming interface (API) groups. 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 using, for example, the Container Storage Interface (CSI) as needed.
To conserve RAM, Rancher Labs also combined the processes that typically run on a Kubernetes management server into a single process. The company also combined the Kubelet, kubeproxy and flannel agent processes that run on a worker node into a single process, and swapped out Docker as the runtime container engine in favor of containerd, reducing the runtime footprint by removing functionality such as libnetwork, swarm, Docker storage drivers and other plugins. Finally, Rancher Labs added SQLlite as an optional lightweight datastore alternative to etcd.
Everything necessary to install Kubernetes on any device is included in a single 40mb binary, according to the company. There is no need for an external installer such as KubeSpray, KubeADM or RKE. Via a single command, a single-node K3s cluster can be provisioned or upgraded. To add more 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.
All the certificates required to establish TLS connections between the Kubernetes masters and nodes are created automatically when a cluster is launched. Encryption keys for service accounts are also created automatically.
It will be interesting to see whether stripped-down versions of Kubernetes will ever outnumber full-featured deployments. Whatever the outcome, however, the next big issue will not be so much how to deploy all those instances of Kubernetes, as much as it will be how to manage them.