All News | Boards | Chips | Devices | Software | Archive | About | Contact | Subscribe
Follow LinuxGizmos:
Twitter Facebook Pinterest RSS feed
*   get email updates   *

MicroK8s footprint shrinks by a third for easier Pi and Jetson clusters

Apr 15, 2021 — by Eric Brown 1,320 views

Canonical released MicroK8s 1.21, featuring a 32.5 percent smaller footprint to enable Kubernetes deployments of 540MB, thereby easing clustering on platforms such as the Raspberry Pi and Nvidia Jetson.

Canonical took another step toward expanding the use of MicroK8s containers on low-power edge devices with the release of version 1.21 of MicroK8s, the stripped down, single-node version of Kubernetes. Released in conjunction with Kubernetes 1.21, which also extends to the Charmed Kubernetes and kubeadm variants, MicroK8s 1.21 has a 32.5 percent smaller RAM footprint than v1.20, “as benchmarked against single node and multi-node deployments,” says Canonical.

RAM footprint reduction from MicroK8s 1.20 to 1.21
Source: Canonical
(click image to enlarge)

The smaller footprint allows users to run MicroK8s on devices with less than 1GB of RAM “and still leave room for multiple container deployments, needed in use cases such as three-tier website hosting or AI/ML model serving,” says Canonical. The release enables easier MicroK8s cluster deployments on low-RAM configurations of the Raspberry Pi and Nvidia Jetson, just to name the two platforms mentioned in the announcement.

The Canonical blog entry specifically mentions support for the 2GB Jetson Nano. Clustering systems for the Jetson Nano include Seeed’s 5-module Jetson Mate.


Jetson Mate

The footprint reductions were enabled by compiling all upstream binaries into a single binary prior to packaging. Previously, all Kubernetes upstream binaries were compiled “as they were” or compiled in a snap, the Ubuntu mechanism that debuted with Ubuntu Core. The previous package was 218MB and was deployed as a full Kubernetes instance of 800MB. The new model weighs in at 192MB and enables a Kubernetes of only 540MB.

Canonical is considering additional memory trimming in future versions while retaining upstream compatibility. One plan is to combine the containerd runtime binary with the K8s services binary and then compile the K8s shared libraries into the same package.

For server implementations on x86-based devices, meanwhile, MicroK8s 1.21 joins Kubernetes 1.21 in adding “seamless integration” of MicroK8s with Nvidia’s latest version of its GPU Operator, which helps provision GPU worker nodes in a Kubernetes cluster. MicroK8s can now consume a GPU or even a Multi-instance GPU (MIG) using a single command and is compatible with specialized Nvidia hardware such as the DGX and EGX.

MicroK8s is typically used for offline development, prototyping, and testing of Kubernetes (k8s) applications on a desktop before deploying them to the cloud as appliances. However, in Oct. 2019, Canonical began expanding the applicability of MicroK8s on edge devices for applications such as clustering when it announced a new feature in Ubuntu 19.10 that enabled “strict confinement” support for MicroK8s. Strict confinement of the non-elastic, rails-based MicroK8s enabled complete isolation and a tightly secured production-grade Kubernetes environment within a small footprint that could run on the Raspberry Pi 4.

The following month, Canonical announced high availability clustering in MicroK8s. HA clustering, which enables a group of hosts that act like a single platform, is often used to ensure continuous uptime via load balancing, backup, and failover strategies. It is deployed on MicroK8s using Canonical’s lightweight Dqlite SQL database, thereby enabling use on edge devices in addition to servers.

Further information

MicroK8s 1.21 is available for free download at the MicroK8s website. More information may be found in Canonical’s blog announcement.

(advertise here)

Print Friendly, PDF & Email

One response to “MicroK8s footprint shrinks by a third for easier Pi and Jetson clusters”

  1. rwoodsmall says:

    Rancher/CNCF’s k3s is frankly much better at the low end and doesn’t require using a snap. Canonical is doing a disservice to users by steering them to their snap releases.

Please comment here...