CI/CD / Kubernetes / Linux

Canonical’s MicroK8s Lightweight Kubernetes Distribution Gets High Availability

16 Oct 2020 9:49am, by

Canonical has added what it calls autonomous high availability (HA) clustering to its MicroK8s Kubernetes distribution, adding additional stability to what Canonical has described as the software’s “lightweight Kubernetes” capabilities.

Similar to how Canonical’s Ubuntu is sufficiently compact to allow it to boot up on a PC as a robust Linux distro from a USB drive, MicroK8s is 200Mb in size. This flexibility makes it possible to fire up a Kubernetes cluster for testing or other use cases with very little overhead or computing resources — all it takes to boot up, in fact, is a PC or even just a USB thumb drive like Ubuntu.

A user can thus “install and run MicroK8s on your Ubuntu USB with a single command” for Kubernetes services with a service mesh such as Istio with Prometheus for monitoring and Grafana for observability, Michael Iatrou, director of field engineering at Canonical, told The New Stack.

The HA feature is enabled once three or more MicroK8s nodes are joined in a Kubernetes cluster, which Canonical says can be completed with “a single command.” The data from the cluster is stored in a distributed database so the control plane can be instantly restored in the event of a failure.

The feature is intended to help improve MicroK8s versatility, allowing it to extend to IoT and edge applications for CI/CD production pipelines or for developer testing on individual workstations. “We gathered feedback from the community and now provide a great user experience for ‘zero-ops,’ autonomous high-availability Kubernetes,” Iatrou said.

MicroK8s is uniquely positioned compared to leading enterprise Kubernetes platform management providers. Red Hat and VMware, for example, offer vertically integrated platforms and K8 is on the menu. However, MicroK8s is more similar to Rancher K3s, which is a stand-alone Kubernetes management platform, also with a minimal footprint.

In this way, MicroK8s is a stand-alone Kubernetes distribution “rather than a PAAS that includes a K8s flavor,” Iatrou said. “MicroK8s is full Kubernetes, packaged in a way that allows for resource optimization, as opposed to large K8s distros. Our focus is on the zero-ops, autonomous Kubernetes experience for workstations, edge and IoT, from development to production,” Iatrou said. “MicroK8s minimizes the need for configuration and human intervention, which is something critical for large-scale, distributed systems.”

For specific hardware specifications, MicroK8s can run on bare metal configurations — based in either Intel or Arm CPUs — or on VMs, according to the company. As mentioned above, the platform can accommodate a number of Kubernetes tools — many of which are included in the distrobution. In addition to service meshes, observability and monitoring tools, MicroK8s can also be supported with requisite ingress controllers for cluster access management.

With all dependencies bundled into a single package, MicroK8s’ naturally lends itself to “eliminating version management complexities,” Iatrou said. “A CI can spin up in seconds an ephemeral MicroK8s cluster to test these artifacts, providing a pristine testbed each time. In production scenarios, MicroK8s delivers a resilient and highly available control and data plane through native clustering.”

Canonical said MicroK8s is compatible with 42 Linux distros. Considering that Canonical is Ubuntu’s creator, MicroK8s benefits from Ubuntu’s “consistent and predictable release cadence and its up-to-date kernel,” Iatrou said. “Kernel security is [obviously] very important for Kubernetes and on Ubuntu workloads running on MicroK8s benefit from Livepatch kernel patching, which automatically addresses critical vulnerabilities.”

“Ubuntu is the host OS for many managed Kubernetes services from public clouds and as a result it’s easy to port workloads to and from MicroK8s,” Iatrou said.