To say Kubernetes, everyone's top container orchestration pick, is hard to master is an understatement. Kubernetes doesn't have so much as a learning curve as it does a learning cliff. But, Canonical's MicroK8s lets you learn to climb it in your home. And, with its latest release, it's easier than ever to set up a baby Kubernetes cluster using inexpensive Raspberry Pi or NVIDIA Jetson single-board computers (SBC).
MicroK8s is a tiny Kubernetes cluster platform. You can install it on Ubuntu Linux, or other Linux distros, macOS, and Windows. With it, you can get your feet wet with Kubernetes on your own desktop and office.
MicroK8s is more than just a Kubernetes training arena. It's powerful enough with its strict confinement to be used in Internet of Things (IoT) and edge computing applications. In this context, strict confinement means your MicroK8s cluster has complete isolation from the underlying operating system. With strict confinement and MicroK8s add-ons, such as Istio, Knative, CoreDNS, Prometheus, and Jaeger, this means you can use MicroK8s to make small footprint Kubernetes clusters suitable for edge gateways. Making it even more useful, you can deploy Kubernetes clusters securely at the edge on x86 and ARM hardware with a single Snap command.
To make it even handier both as a training environment and as a platform for deploying IoT and edge applications, MicroK8s 1.21 memory footprint has been shrunk by 32.5%, as benchmarked against single node and multi-node deployments. As Alex Chalkias, Canonical's Product Manager for data center solutions, writes, "This improvement was one of the most popular requests from the community looking to build clusters using hardware such as the Raspberry Pi or the NVIDIA Jetson. Canonical is committed to pushing that optimization further while keeping MicroK8s fully compatible with the upstream Kubernetes releases."
How was this done? Chalkias explained:
The previous versions either simply packaged all Kubernetes upstream binaries as they were or compiled them in a snap. That package was 218Mb and deployed a full Kubernetes of 800Mb. With MicroK8s 1.21, the upstream binaries were compiled into a single binary prior to the packaging. That made for a lighter package – 192Mb – and most importantly a Kubernetes of 540Mb. In turn, this allows users to run MicroK8s on devices with less than 1Gb of memory and still leaves room for multiple container deployments, needed in use cases such as three-tier website hosting or AI/ML model serving.
Like all of Canonical's Kubernetes family -- MicroK8s, Charmed Kubernetes, and Kubeadm -- this latest update supports the newest version of Kubernetes: 2021's Kubernetes 1.21. The most significant new feature here is the CronJobs (previously ScheduledJobs) application programming interface (API), which is used for scheduling actions, is finally a stable feature.
So, if you want a full-featured Kubernetes both for learning on at home with a passel of Raspberry Pi boards or for deploying to a host of inexpensive SBCs, check out MicroK8s. You'll be glad you did.