AKS Edge Essentials
Overview
Introduction
Recently Azure Kubernetes Service (AKS) Edge Essentials became general available. AKS Edge Essentials is the latest addition to the AKS portfolio which already consist of Azure Kubernetes Services and AKS hybrid cluster. The product was originally announced at Ignite 2022 as AKS light. With AKS Edge, Microsoft makes it possible to run AKS on local Windows machines or Edge devices running the Windows operating system.
AKS Edge Essentials includes the following features, managed by Microsoft:
- A lightweight, CNCF-conformant K8S and K3S distribution that is supported and managed by Microsoft. The key difference between AKS on HCI and AKS on Windows is that AKS on Windows has minimal compute and memory requirements (4 GB RAM and 2 vCPUs).
- Each Kubernetes node runs in its own Hyper-V isolated virtual machine and includes many features to help secure your container infrastructure.
- Microsoft-maintained Linux and Windows worker nodes virtual machine images adhere to security best practices. Microsoft also refreshes these images monthly with the latest security updates.
- Simplified installation experience with PowerShell cmdlets and agents to enable provisioning and control of VMs and infrastructure. Microsoft provides automatic updates for your Kubernetes deployment, so you stay up-to-date with the latest available Kubernetes versions.
Requirements
It is possible to run AKS Edge Essentials on a virtual machine in Azure. When creating the virtual machine make sure it supports nested virtualisation.
At the time of writing this review running on nested virtualisation was still in preview.
OS Requirements
Currently the following operating systems are supported, Windows 10/11 IoT Enterprise/Enterprise/Pro.
Hardware Requirements
Specs | Local cluster | Arc-connected cluster and GitOps |
---|---|---|
Host OS | Windows 10/11 IoT Enterprise/Enterprise/Pro and Windows Server 2019, 2022 | |
Total physical memory | 4 GB with at least 2.5 GB free | 8 GB with at least 4.5 GB free |
CPU | 2 vCPUs, clock speed at least 1.8 GHz | 4 vCPUs, clock speed at least 1.8 GHz |
Disk space | At least 14 GB free | At least 14 GB free |
Setup
I tested AKS essentials on my laptop running Windows 11 Home edition. This not a supported version by Microsoft. For testing the installation it is ok but if you want run in production, my recommendation is to run a Microsoft supported version of the base operating system. The home editions are out of the box not able to install the Hyper-V feature which is needed. It is however possible to add the feature.
To install the hyper-v feature follow these steps
- Open a text editor, for instance Notepad
- Copy the code below in the text editor
1pushd "%~dp0"
2dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv-home.txt
3for /f %%i in ('findstr /i . hv-home.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
4del hv-home.txt
5Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
6pause
- Save the file as a batch file, for instance hyperv.bat
- Right-click the hyperv.bat file and select the Run as administrator option.
Hyper-V and all of its required components are now installed. Reboot your machine after the installation is finished. After that Hyper-V functionality is available. The Hyper-V feature can be turned off or on like any other Windows feature. Now Hyper-V is installed, the installation of AKS Edge Essentials can continue.
The installation consist of two parts:
Setup
AKS Edge Essentials offers two options. The first is based on K3S and the second is based on K8S. If you want to know more about K3S, you can read about in some of my earlier posts or go to link at the bottom. Microsoft offers a msi package for both options. They offer also a zip file which makes it possible to add a Windows node to the cluster. This is still experimental. Before we can deploy the AKS cluster we first have to install the msi package and optionally the Windows node. After the installation is completed the AKS Edge modules have to be imported and verified.
Deployment
For the deployment, there are two options available:
- Single machine deployment
- Full deployment this is still experimental
A machine that is running AKS Edge Essentials is running only one node (Linux vm) and optional one Windows vm. A full deployment makes it possible to have a seperation of the control plane and the worker node. AKS Edge doesn't support autoscaling which is available in AKS For this node a license is required if it is not used for test or development purposes. I chose the single machine deployment as I only have one Windows device available. After the deployment is succesful the optional Windows node can be added. The adding of the node is done by scaling the cluster.
I started with the K3S installation.After the installation completed I also added the metrics server and the local path provisioner.One of the differences between the K3S and the K8S deployment is the cni which is installed. K3S is installed with Flannel and K8S is installed with Calico.
I didn't test the optional Windows node as the memory in my machine was not sufficient for running a Windows node next to the Linux node. I also didn't test the Microsoft Arc integration as I have no access to such a Microsoft Arc environment.
Conclusion
Azure Kubernetes Edge Essentials is a very nice addition to the Azure Kubernetes offering. It extends Kubernetes to Edge devices that are running Windows operating system. Currently the usefulness of the application is limited as lot of the features are still experimental, like Calico support for K3S. The integration with Microsoft Arc is the reason that AKS Edge essentials is an interesting solution. In use cases where you have large amounts of Windows devices and there is a requirement for running cloud native workloads in containers, running AKS Edge essentials integrated with Microsoft might be the way for creating an environment that can be managed in a consistent and secure way.