This article is more than 1 year old
Microsoft takes Kubernetes right to the edge with release of Akri for IoT devices
Beware Greeks bearing gifts
Microsoft's born-again love of open source continued today with the sharing of Akri, a project simplifying the use of network edge devices with Kubernetes.
Lurking under the umbrella of Deis Labs (itself a throwback to Deis, which was acquired by Microsoft back in 2017), the purpose of Akri is to expose lightweight "leaf devices", such as IP cameras or sensors, as resources in a Kubernetes cluster, allowing the gizmos to be managed along with your other services.
Making Kubernetes more usable with kit on the network edge is an enticing prospect.
Building on the Kubernetes device plugin framework, which is more geared toward to finding GPU and other system resources, Akri takes things to the edge. It provides an abstraction layer to remove the pain of having to find, manage and, increasingly importantly where edge devices are concerned, deal with the dynamic disappearance and appearance of leaf devices.
Microservices guru says think serverless, not Kubernetes: You don't want to manage 'a towering edifice of stuff'READ MORE
The architecture is deceptively simple. Apply an Akri Configuration to a cluster, tell it the discovery protocol and the pod to deploy on discovery, and the platform takes care of the rest. There is also a nod to high availability with multiple nodes able to utilise a leaf device.
Akri is made up of four components; a custom resource containing the Configuration, a device plugin implementation to look for and track the device's availability using a second custom resource (the Akri Instance), and finally an Akri Controller to use the thing.
We took Akri for a spin on a Raspberry Pi 4 and, after a bit of fettling, were able to list a bunch of "leaf devices" in the form of mock camera services via
kubectl. Fat fingered errors aside, the potential is impressive even if only ONVIF and udev discovery protocols are currently supported.
OPC UA (Object Linking and Embedding for Process Control Unified Architecture) is on the way, and will be essential for making Akri useful in industrial applications. The team is also keen for the community to add more protocols to build up the platform's smarts.
And Akri itself? Unsurprisingly the name has a meaning: "A Kubernetes Resource Interface for the edge." Greek speakers might raise an eyebrow or two as well: "Akri" is Greek for "Edge," allegedly.
We can imagine someone doing a happy dance about that before being dragged crashing down to earth by the unending delight of Kubernetes itself. ®