Prepare your machine for AKS Edge Essentials

Completed

To maintain a small resource footprint with the most focused possible experience, AKS Edge Essentials is designed for running predefined AKS configurations in production.

In the industrial factory scenario, we will use AKS Edge Essentials to automate and run containerized applications, on multiple specialized devices.

Here, you will learn how to prepare your machine and define the amount of CPU and memory resources needed, to ensure that applications running on the host have the required resources.

Hardware requirements

Specs Local cluster Arc-connected cluster and GitOps
Host OS Windows 10/11 (IoT Enterprise / Enterprise / Pro) or Windows (Server / Server IoT) 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

For developer and training use cases, you can run AKS Edge Essentials in an Azure Virtual Machine (VM). You can create a Windows VM with either Windows 10/11 IoT Enterprise/Enterprise/Pro or (Server / Server IoT) 2019/2022, on a VM image that supports nested virtualization.

In our example scenario, we will use a Windows 11 Enterprise Dsv5-series Azure VM.

Clusters and nodes

AKS Edge Essentials is intended for static, pre-defined configurations and doesn't enable dynamic VM creation/deletion or cluster lifecycle management. Each machine in an AKS Edge Essentials cluster can only have one Linux and/or Windows VM. The Linux VM acts as the control node and worker node for Linux workloads in the Kubernetes cluster. Each machine with AKS Edge Essentials has a VM with restricted RAM, storage, and physical CPU cores according to a static allocation assigned at install time. This static allocation enables you to control how resources are used and ensures that applications running on the host have the required resources. AKS Edge Essentials manages the lifecycle, configuration, and updates of the VMs.

After you set up your machines, you can deploy AKS Edge Essentials in the following configurations:

  • Single machine cluster: Runs Kubernetes nodes on a single machine to create a single machine cluster. This deployment uses an internal network switch to enable communication across the nodes. This deployment supports only one Linux node and one Windows node, both running on a single machine.
  • Scalable cluster: Lets you create a multi-node Kubernetes cluster that can be scaled across multiple machines. AKS Edge Essentials doesn't offer dynamic creation of virtual machines. If a node VM goes down, you have to recreate it. That said, if you have a scalable cluster with multiple control plane nodes and worker nodes, if a VM goes down, Kubernetes moves workloads to an active node.

Diagram showing AKS Edge Essentials deployment scenarios.

In our example scenario, we will use a single machine K3S cluster with one Linux node and one Windows node.

Deployment schema for a single machine K3S cluster with one Linux node and one Windows node

The AKS Edge Essentials deployment schema provides a flexible and scalable way to deploy and manage containerized applications on edge devices. The following table describes some of the values used to deploy AKS Edge Essentials in our example scenario:

Attribute Value type Description Value
DeploymentType [SingleMachineCluster / ScalableCluster] Specifies deployment type. In ScalableCluster, you can add more machines to the cluster infrastructure. SingleMachineCluster
Machines[].LinuxNode.CpuCount [2-x] Number of CPU cores reserved for VM/VMs. 2
Machines[].LinuxNode.MemoryInMB [2048-2x] RAM in MBs reserved for VM/VMs. 2048
Machines[].LinuxNode.DataSizeInGB Number Size of the data partition. For large applications, we recommend increasing this number. Only for Linux VMs. 20
Machines[].WindowsNode.CpuCount [2-x] Number of CPU cores reserved for VM/VMs. 2
Machines[].WindowsNode.MemoryInMB [2048-2x] RAM in MBs reserved for VM/VMs (multiples of 2). 2048