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

Ubuntu 19.10 on the edge: Raspberry Pi 4 support and MicroK8s

Oct 17, 2019 — by Eric Brown — 2498 views

Ubuntu 19.10 debuts “strict confinement” support for MicroK8s — Canonical’s snap-deployed, single-node Kubernetes environment — enabling easier deployment of k8s containers on edge gateways. MicroK8s can even run on the newly supported RPi 4.

Canonical’s Ubuntu project released Ubuntu 19.10 “Eoan Ermine” with loads of new features for the desktop and cloud. Yet, it also delivered some shiny new objects for the embedded/edge world. First and shiniest is support for the Raspberry Pi 4 Model B. The second is the addition of “strict confinement” support for Canonical’s MicroK8s Kubernetes environment for single-node clusters, enabling easier deployment on edge devices. In addition, the Kubeflow machine learning toolkit for Kubernetes is now available as an add-on to MicroK8s.

Before we dig in to MicroK8s, here’s a quick look at Eoan Ermine’s key improvements. The big crowd pleaser: For the first time Ubuntu 19.10 loads Nvidia GPU drivers by default. The new release also adds experimental native support for the ZFS file system on the root partition. Together with a new zsys package, ZFS enables automated snapshots of file system states, allowing users to boot to a previous update and easily roll forwards and backwards in case of failure.

Ubuntu 19.10 with GNOME 3.34 with Yaru light (left) and Yaru dark theme
(click image to enlarge)
(Source: OmgUbuntu!)

Ubuntu 19.10 offers a slightly faster boot speed and a faster GNOME 3.34 desktop with optional Yaru light theme. A range of updated applications include LibreOffice 6.3 and Thunderbird 68.

An update to the Linux 5.3 kernel brings AMD GPU Navi and Zhaoxin x86 support, HDR display support for Intel’s Gemini Lake and 10nm Ice Lake processors, and improved support for Nvidia’s Jetson Nano, among other goodies. On the cloud, Ubuntu 19.10 ships with the “Train” release of Charmed OpenStack (version 20), which is accompanied by the Nautilus release of Ceph. Train provides live migration extensions to aid telcos in infrastructure operations.

If none of this is particularly intriguing, you’ll probably want to wait for the next LTS edition, Ubuntu 20.04 LTS, which is due in April 2020. For more in-depth summaries of Ubuntu 19.10, there are plenty of options, including Omgubuntu!.

Raspberry Pi 4

MicroK8s goes directly to jail — and the edge

The newly supported Raspberry Pi 4 is powerful enough to run Canonical’s MicroK8s environment, says Canonical. Based on a 1.5GHz quad-core, Cortex-A72 Broadcom SoC, the RPi 4 offers up to 4GB RAM, native GbE, USB 3.0 and Type-C ports, and a second micro-HDMI for dual 4K displays, among other enhancements.

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, with the new strict confinement capability and its ability to be deployed via Ubuntu’s container-like snaps package mechanism, MicroK8s can more easily be used as an edge computing platform.

Strict confinement of the non-elastic, rails-based MicroK8s “ensures complete isolation and a tightly secured production-grade Kubernetes environment, all in a small footprint ideal for edge gateways,” says Canonical. Using snaps, users can now securely deploy MicroK8s add-ons on edge devices with a single command, says the company. The add-ons include Istio, Knative, CoreDNS, Prometheus, and Jaeger.

The MicroK8s snaps support “builds on existing snaps for edge gateways already available,” says Canonical. These include AWS IoT Greengrass and EdgeX, a part of the Linux Foundation’s LF Edge initiative.

MicroK8s is billed as “the smallest, fastest, fully-conformant Kubernetes that tracks upstream releases and makes clustering trivial.” The open source, “Zero-ops Kubernetes” software can be used to “develop IoT apps for k8s and deploy them to MicroK8s on your Linux boxes,” says the project.

The closest alternative to MicroK8s for single-node k8s cluster provisioning is Minikube. Like Microk8s, Minikube supports VMs, but according to this Dec. 18 Medium post on MicroK8s, “it’s very much not recommended to use minikube outside of a VM, as it can cause damage to the host system.” Minikube is also focused more on Mac and Windows desktop developers while MicroK8s requires Linux. In August, TheNewStack posted a how-to article on how to deploy Microk8s.

The Kubeflow machine learning toolkit for k8s is now available as a MicroK8s add-on and can “work out the box with MicroK8s,” says Canonical. “All dependencies are included with automatic updates and transactional security fixes.”

Kubeflow includes services for spawning and managing Jupyter notebooks. It also includes a Kubeflow Pipelines platform for building, deploying, and managing multi-step ML workflows based on Docker containers.

With Nvidia GPU drivers now embedded in the Ubuntu ISO image, developers working with Kubeflow and other AI/ML platforms will benefit from an improved “performance and overall experience,” says Canonical. The company also notes the addition of the Linux 5.3 kernel’s new AMD GPU Navi and Zhaoxin x86 support.

Other edge container projects

The Ubuntu project is not alone among Linux distros in experimenting with using Kubernetes for edge devices. MicroK8s itself supports 42 Linux distros, although Ubuntu now appears to offer the tightest integration. In June, a new version of the Yocto Project based Wind River Linux embedded Linux distro added an “OverC” container stack that eases integration of frameworks such as Docker and Kubernetes on edge devices.

BalenaFin carrier
For RPi CM3

Others playing in the edge container space include Balena with its openBalena platform for deploying lightweight containers on Linux devices such as the Raspberry Pi. Earlier this month, launched a free, lightweight Nubix edge-container platform for IoT with initial support for the Raspberry Pi and BeagleBone. The homegrown technology in Nubix supports microcontainers as small as 32KB — more than 100 times smaller than a Docker container. There’ also a library of preconfigured sensor packages, analytics tools, and “tiny services.”

The argument for edge containers over grassroots embedded development include easier installation and updates, greater security, and the ability to quickly scale for large deployments. It’s also easier to find developers with knowledge of cloud technologies than those with embedded chops. Finally, with the growing need for AI on the edge to reduce latency and costs from embedded-to-cloud communications, it’s easier to borrow from cloud-based AI frameworks than to build them from scratch.

Ubuntu on embedded: a brief history

The Ubuntu project launched 15 years ago, and quickly emerged as the most popular desktop Linux distro in the world. In 2008, Canonical’s flagship project wisely added Arm support. In the following decade, it rebounded from its failed, polarizing Unity8 convergence experiment and its related mobile OS ambitions and returned to the GNOME desktop.

Ubuntu continued to mature and Canonical spun off a stripped-down Ubuntu Core implementation for embedded with a snap package mechanism with transactional rollbacks and an app store. In January, Canonical released an improved Ubuntu Core 18, bringing 10-year support and improved security. Today, the Ubuntu project posted a blog entry called Embedded System Cross-development with Ubuntu Core.

Yet even without Ubuntu Core, Ubuntu is the most commonly pre-loaded software on both commercial embedded Linux devices and open source hacker boards. There may well be more embedded Linux stacks out there based on Yocto Project, but Ubuntu has long ago surpassed other monolithic distros such as the Red Hat-linked Fedora and CentOS on embedded devices.

Further information

Ubuntu 19.10 is available for free download here.

(advertise here)

Print Friendly, PDF & Email

One response to “Ubuntu 19.10 on the edge: Raspberry Pi 4 support and MicroK8s”

  1. Pinguino says:

    Off course it can be good, alla the alpha and beta test software a mostly done on Fedora project : Thank’s to IBM and Red Hat… Ubuntu and derived since it was forked from Debian, never was on top of software creation. All in it come from other distro…

Please comment here...