Microsoft’s latest Kubernetes edition is intended for use with IoT hardware on the edge of your network. AKS Edge Essentials is designed to run on Windows 10 and 11 IoT, supported on both Enterprise and Pro releases, as well as Windows Server 2019 and later. The hardware requirements are minimal, supporting everything from single board computers to ruggedized edge hardware. All that’s needed is hardware that supports one of the target operating systems and at least 4GB of RAM.
One of the more useful aspects of AKS Edge Essentials is support for not just a full Kubernetes instance, but also for the edge oriented K3s. This allows you to use it alongside other edge hardware, allowing you to use small form-factor Windows IoT hardware where you might have used custom devices. There are limits to how you can use AKS Edge Essentials. As well as locking down the number of VMs that can be run, you’re limited to 16 vCPUs per machine and the largest possible cluster is 15 machines.
- Kubernetes on the edge
- Building on EFLOW
- Setting up AKS Edge Essentials
- A supported, long-term Kubernetes on the edge
Kubernetes on the edge
Microsoft offers two management options. If you’re already using AKS in Azure Stack HCI or Azure, then you’ll probably prefer to choose Azure Arc as your management platform. This gives you an Azure Portal-integrated management view, allowing you to share resources across all your on-premises, in-cloud and on-edge systems. Alternatively, if you’re already familiar with Kubernetes’ own management tooling, you can use kubectl from PowerShell, with support for local and remote management.
There’s one big difference between AKS Edge Essentials and a traditional Kubernetes installation: There’s no support for the cluster lifecycle. That means your configurations are static; they won’t scale on demand.
It’s an approach that makes sense: A full Kubernetes system is designed to work in cloud-like environments, where although there are resource limits, it’s not encumbered by running on a single server. With AKS Edge Essentials running on a small form factor device with limited compute and memory, the freedom to expand as needed isn’t there. However, that doesn’t stop your application taking advantage of Kubernetes APIs and a container-based packaging and deployment model.
Like the full-blown AKS on Azure Stack and in the cloud, there’s support for both Windows and Linux containers. Again, due to resource limitations, there’s only one host Linux VM for both a control and worker node per machine. This makes working with AKS Edge Essentials much more like working with a standard edge device, as RAM, storage and CPU core allocations are fixed at install.
It’s an approach that means you can have both existing Windows applications running alongside Kubernetes code on the same hardware, allowing you to add it to existing Windows IoT hardware. With Kubernetes, a key component in modern architectures, you could be running a Kubernetes-based stock control system alongside a Windows point-of-sale application, with data being delivered to a cloud-hosted store management system.
Building on EFLOW
Under the hood, AKS Edge Essentials is based on Microsoft’s work on EFLOW: Edge for Linux On Windows. It’s an approach that makes sense, building on familiar and proven technologies. The services use Microsoft’s own CBL-Mariner Linux distribution as the host OS, running in a Hyper-V virtual machine.
The VM hosts the Kubernetes control plane and a Linux worker, which runs a set of Azure management tooling containers for connecting to Azure monitoring and the Arc portal. With this running, you’re able to deploy existing Kubernetes containers. There’s an option to host a Windows VM alongside the Linux VM, with a Kubernetes Windows worker and its own Windows containers.
While you could install Kubernetes on EFLOW, there’s very little point. Microsoft provides all the set-up scripts and tools and handles maintenance and updates for you. The resulting system takes much of the pain out of running Kubernetes, and by working with Azure Arc, lets you separate our management between Edge device operations, platform engineering and application operations. An application engineer will be able to manage an entire fleet of edge devices from the Azure Arc portal or from the Azure CLI, simply treating them as available Azure resources.
SEE: Don’t curb your enthusiasm: Trends and challenges in edge computing (TechRepublic)
Setting up AKS Edge Essentials
You have two deployment options: a single machine or a full cluster. The single machine option supports one Linux and an optional Windows node. That should suffice for most edge scenarios with small single-purpose devices. More complex installations with a full cluster are likely to be a low-cost alternative to using Azure Stack HCI, but do come with additional management requirements. Still, if you’re considering a small cluster of machines as a “store in a box,” it’s a valid option that ensures applications continue running even if data may not persist through a failure.
Setting up is easy enough: Start with one of the supported operating systems and enable Hyper-V. Microsoft recommends making sure that the target machine won’t go into standby.
There are separate installers for Kubernetes or for K3s, so you can choose the distribution you’re using. Once you’ve downloaded the appropriate one on the target machine, run the installer. This will install a set of PowerShell scripts that configure and set up your machine, using a JSON file you can download from GitHub to control setting up VMs, enabling vCPUs and setting up memory.
Once your system is up and running, you can deploy containers from any container registry, much like any other Kubernetes system.
It’s important to remember that this isn’t a high availability solution; then again, high availability isn’t a priority on the edge. More complex deployments, with multiple nodes on different devices, will take up failed nodes where possible, but that doesn’t mean that the underlying VMs fail over — only that failed containers can be started elsewhere.
A supported, long-term Kubernetes on the edge
With Kubernetes and K3S readily available, why would you use a tool like AKS Edge Essentials? The best argument is support. Microsoft’s Windows IoT has ten years of long-term support, while a managed Linux host and a Microsoft Kubernetes should ensure that your applications run on the latest supported Kubernetes release. Cloud-hosted management and deployment through Azure Arc allow you to treat your edge containers as digital twins of centrally developed and tested code, with Arc managing and storing configurations, so replacing a device on the edge is simply a matter of plugging in new hardware, connecting to Azure and automating deployments.
Kubernetes on the edge is increasingly important, and AKS Edge Essentials should make it easier to get started. For now, it’s still in preview, and some of the tooling is a little rough around the edges. Even so, it’s worth taking a look at it and seeing if you can use containers to simplify edge deployments and operations.
For those seeking further understanding of the edge, check out its history and its current state.