Red Hat announced new capabilities and features for Red Hat OpenShift, the company's enterprise Kubernetes platform.
Rancher Labs announced K3s, a lightweight Kubernetes distribution designed for developers and operators looking for a way to run Kubernetes in resource-constrained environments.
Rancher Labs launched the project to address the increasing demand for small, easy to manage Kubernetes clusters running on x86, ARM64 and ARMv7 processors in edge computing environments.
“Existing Kubernetes distributions are often memory intensive and overly complex for edge computing environments,” said Sheng Liang, CEO and co-founder of Rancher Labs. “In the last year we’ve worked with dozens of teams who see Kubernetes as an ideal platform for managing edge infrastructure but have been reluctant to commit a large portion of resources in their edge devices to run a full-fledged Kubernetes platform. With K3s, we can provide these teams with a distribution of Kubernetes that requires less than 512 MB of RAM, and is ideally suited for edge use cases. We see significant demand for K3s among organizations in the retail, finance, telco, utility and manufacturing sectors.”
To reduce the memory required to run Kubernetes, the engineering team at Rancher Labs developing K3s focused on four primary changes:
- Removing old and non-essential code: K3s does not include any alpha functionality that is disabled by default or old features that have been deprecated, such as old API groups, which are still shipped in a standard deployment. 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 they need.
- Consolidating the packaging of running processes: To conserve RAM, Rancher combined the processes that typically run on a Kubernetes management server into a single process. Rancher has also combined the Kubelet, kubeproxy and flannel agent processes that run on a worker node into a single process.
- Using containerd instead of Docker as the runtime container engine: By substituting containerd for Docker, Rancher was able to cut the runtime footprint significantly, removing functionality like libnetwork, swarm, Docker storage drivers and other plugins.
- Introducing SQLite as an optional datastore in addition to etcd: Rancher added SQLite as optional datastore in K3s to provide a lightweight alternative to etcd that has both a lower memory footprint, as well as dramatically simplified operations.
As Kubernetes pushes out to the edge, the number of Kubernetes clusters a team is operating is increasing rapidly. In many of the most interesting edge use cases, organizations will run thousands of one, two or three node Kubernetes clusters. To support the operators who will be responsible for managing that scale of infrastructure, K3s was designed to maximize the simplicity of installation and operations.
Key features include:
- Production-grade Kubernetes: K3s is a standards-compliant, Kubernetes distribution engineered for mission-critical, production use cases.
- One binary with zero host dependencies: Everything necessary to install Kubernetes on any device is included in a single, 40mb binary. There is no requirement for an external installer like KubeSpray, KubeADM or RKE. With a single command, a single-node K3s cluster can be provisioned or upgraded.
- Simple to add nodes to a cluster: To add additional 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.
- Automatic certificate generation: All of the certificates needed to establish TLS between the Kubernetes masters and nodes are automatically created when a cluster is launched. Encryption keys for service accounts are also automatically created.
Rancher Labs is simultaneously releasing K3s with support for x86_64, ARM64 and ARMv7 architectures, making it flexible enough to work across any edge infrastructure. In addition to edge use cases, Rancher anticipates K3s will appeal to any users looking for a simple way to deploy lightweight distribution of Kubernetes. During early previews, many users found it especially useful for CI/CD environments, embedded systems and local Kubernetes deployments.