Azure IoT Edge supported platforms

Caution

This article references CentOS, a Linux distribution that is End Of Life (EOL) status. Please consider your use and planning accordingly. For more information, see the CentOS End Of Life guidance.

Applies to: IoT Edge 1.4 checkmark IoT Edge 1.4

Applies to: IoT Edge 1.5 checkmark IoT Edge 1.5

Important

IoT Edge 1.5 LTS and IoT Edge 1.4 are supported releases. IoT Edge 1.4 LTS is end of life on November 12, 2024. If you are on an earlier release, see Update IoT Edge.

This article explains what operating system platforms, IoT Edge runtimes, container engines, and components are supported by IoT Edge whether generally available or in preview.

Get support

If you experience problems while using the Azure IoT Edge service, there are several ways to seek support. Try one of the following channels for support:

Reporting bugs - Most development that goes into the Azure IoT Edge product happens in the IoT Edge open-source project. Bugs can be reported on the issues page of the project. Bugs related to Azure IoT Edge for Linux on Windows can be reported on the iotedge-eflow issues page. Fixes rapidly make their way from the projects in to product updates.

Microsoft Customer Support team - Users who have a support plan can engage the Microsoft Customer Support team by creating a support ticket directly from the Azure portal.

Feature requests - The Azure IoT Edge product tracks feature requests via the product's Azure feedback community.

Container engines

Azure IoT Edge modules are implemented as containers, so IoT Edge needs a container engine to launch them. Microsoft provides a container engine, moby-engine, to fulfill this requirement. This container engine is based on the Moby open-source project. Docker CE and Docker EE are other popular container engines. They're also based on the Moby open-source project and are compatible with Azure IoT Edge. Microsoft provides best effort support for systems using those container engines; however, Microsoft can't ship fixes for issues in them. For this reason, Microsoft recommends using moby-engine on production systems. If you are using Ubuntu Core snaps, the Docker snap is serviced by Canonical and supported for production scenarios.

Screenshot of the Moby engine as a container runtime.

Operating systems

Azure IoT Edge runs on most operating systems that can run containers; however, not all of these systems are equally supported. Operating systems are grouped into tiers that represent the level of support users can expect.

  • Tier 1 systems are supported. For tier 1 systems, Microsoft:
    • has this operating system in automated tests
    • provides installation packages for them
  • Tier 2 systems are compatible with Azure IoT Edge and can be used relatively easily. For tier 2 systems:
    • Microsoft has done informal testing on the platforms or knows of a partner successfully running Azure IoT Edge on the platform
    • Installation packages for other platforms may work on these platforms

Tier 1

The systems listed in the following tables are supported by Microsoft, either generally available or in public preview, and are tested with each new release.

Linux containers

Modules built as Linux containers can be deployed to either Linux or Windows devices. For Linux devices, the IoT Edge runtime is installed directly on the host device. For Windows devices, a Linux virtual machine prebuilt with the IoT Edge runtime runs on the host device.

IoT Edge for Linux on Windows is the recommended way to run IoT Edge on Windows devices.

Operating System AMD64 ARM32v7 ARM64 End of OS provider standard support
Debian 11 Debian + ARM32v7 June 2026
Red Hat Enterprise Linux 9 Red Hat Enterprise Linux 9 + AMD64 May 2032
Red Hat Enterprise Linux 8 Red Hat Enterprise Linux 8 + AMD64 May 2029
Ubuntu Server 22.04 Ubuntu Server 22.04 + AMD64 Ubuntu Server 22.04 + ARM64 June 2027
Ubuntu Server 20.04 Ubuntu Server 20.04 + AMD64 Ubuntu Server 20.04 + ARM64 April 2025
Windows 10/11 Windows 10/11 + AMD64 Windows 10/11 + ARM64 See Azure IoT EFLOW for supported Windows OS versions.
Windows Server 2019/2022 Windows Server 2019/2022 + AMD64 See Azure IoT EFLOW for supported Windows OS versions.
Operating System AMD64 ARM32v7 ARM64 End of OS provider standard support
Debian 12 Debian + ARM32v7 June 2028
Debian 11 Debian + ARM32v7 June 2026
Red Hat Enterprise Linux 9 Red Hat Enterprise Linux 9 + AMD64 May 2032
Red Hat Enterprise Linux 8 Red Hat Enterprise Linux 8 + AMD64 May 2029
Ubuntu Server 24.04 Ubuntu Server 24.04 + AMD64 Ubuntu Server 24.04 + ARM64 June 2029
Ubuntu Server 22.04 Ubuntu Server 22.04 + AMD64 Ubuntu Server 22.04 + ARM64 June 2027
Ubuntu Server 20.04 Ubuntu Server 20.04 + AMD64 Ubuntu Server 20.04 + ARM64 April 2025
Ubuntu Core 1 Ubuntu Core + AMD64 Ubuntu Core + ARM64 April 2027
Windows 10/11 Windows 10/11 + AMD64 Windows 10/11 + ARM64 See Azure IoT EFLOW for supported Windows OS versions.
Windows Server 2019/2022 Windows Server 2019/2022 + AMD64 See Azure IoT EFLOW for supported Windows OS versions.

1 Ubuntu Core is fully supported but the automated testing of Snaps currently happens on Ubuntu 22.04 Server LTS.

Note

When a Tier 1 operating system reaches its end of standard support date, it's removed from the Tier 1 supported platform list. If you take no action, IoT Edge devices running on the unsupported operating system continue to work but ongoing security patches and bug fixes in the host packages for the operating system won't be available after the end of support date. To continue to receive support and security updates, we recommend that you update your host OS to a Tier 1 supported platform.

Windows containers

We no longer support Windows containers. IoT Edge for Linux on Windows is the recommended way to run IoT Edge on Windows devices.

Tier 2

The systems listed in the following table are considered compatible with Azure IoT Edge, but aren't actively tested or maintained by Microsoft.

Important

Support for these systems is best effort and may require you reproduce the issue on a tier 1 supported system.

Installation packages are made available on the Azure IoT Edge releases. See the installation steps in Offline or specific version installation.

Operating System AMD64 ARM32v7 ARM64 End of OS provider standard support
CentOS-7 CentOS + AMD64 CentOS + ARM32v7 CentOS + ARM64 June 2024
Debian 10 1 Debian 10 + AMD64 Debian 10 + ARM32v7 Debian 10 + ARM64 June 2024
Debian 11 Debian 11 + AMD64 Debian 11 + ARM64 June 2026
Mentor Embedded Linux Flex OS Mentor Embedded Linux Flex OS + AMD64 Mentor Embedded Linux Flex OS + ARM32v7 Mentor Embedded Linux Flex OS + ARM64
Mentor Embedded Linux Omni OS Mentor Embedded Linux Omni OS + AMD64 Mentor Embedded Linux Omni OS + ARM64
RHEL 7 RHEL 7 + AMD64 RHEL 7 + ARM32v7 RHEL 7 + ARM64 June 2024
Ubuntu Server 22.04 Ubuntu 22.04 + ARM32v7 June 2027
Ubuntu Server 20.04 Ubuntu 20.04 + ARM32v7 April 2025
Ubuntu Core 2 Ubuntu Core + AMD64 Ubuntu Core + ARM64 April 2027
Wind River 8 Wind River 8 + AMD64
Yocto (kirkstone)
For Yocto issues, open a GitHub issue
Yocto + AMD64 Yocto + ARM32v7 Yocto + ARM64 April 2026
Raspberry Pi OS Buster Raspberry Pi OS Buster + ARM32v7 Raspberry Pi OS Buster + ARM64 June 2024

1 With the release of 1.3, there are new system calls that cause crashes in Debian 10. To see the workaround, view the Known issue: Debian 10 (Buster) on ARMv7 section of the 1.3 release notes for details.

2 Ubuntu Core is fully supported but the automated testing of Snaps currently happens on Ubuntu 22.04 Server LTS.

Note

When a Tier 2 operating system reaches its end of standard support date, it's removed from the supported platform list. If you take no action, IoT Edge devices running on the unsupported operating system continue to work but ongoing security patches and bug fixes in the host packages for the operating system won't be available after the end of support date. To continue to receive support and security updates, we recommend that you update your host OS to a Tier 1 supported platform.

Releases

The following table lists the currently supported releases. IoT Edge release assets and release notes are available on the azure-iotedge releases page.

Release notes and assets Type Release Date End of Support Date
1.5 Long-term support (LTS) April 2024 November 10, 2026
1.4 Long-term support (LTS) August 2022 November 12, 2024

For more information on IoT Edge version history, see, Version history.

Important

  • Every Microsoft product has a lifecycle. The lifecycle begins when a product is released and ends when it's no longer supported. Knowing key dates in this lifecycle helps you make informed decisions about when to upgrade or make other changes to your software. IoT Edge is governed by Microsoft's Modern Lifecycle Policy.

IoT Edge uses the Microsoft.Azure.Devices.Client SDK. For more information, see the Azure IoT C# SDK GitHub repo or the Azure SDK for .NET reference content. The following list shows the version of the client SDK that each release is tested against:

IoT Edge version Microsoft.Azure.Devices.Client SDK version
1.5 1.42.x
1.4 1.36.6

Virtual Machines

Azure IoT Edge can be run in virtual machines, such as an Azure Virtual Machine. Using a virtual machine as an IoT Edge device is common when customers want to augment existing infrastructure with edge intelligence. The family of the host VM OS must match the family of the guest OS used inside a module's container. This requirement is the same as when Azure IoT Edge is run directly on a device. Azure IoT Edge is agnostic of the underlying virtualization technology and works in VMs powered by platforms like Hyper-V and vSphere.

Screenshot of an Azure IoT Edge in a virtual machine.

Minimum system requirements

Azure IoT Edge runs great on devices as small as a Raspberry Pi3 to server grade hardware. Choosing the right hardware for your scenario depends on the workloads that you want to run. Making the final device decision can be complicated; however, you can easily start prototyping a solution on traditional laptops or desktops.

Experience while prototyping will help guide your final device selection. Questions you should consider include:

  • How many modules are in your workload?
  • How many layers do your modules' containers share?
  • In what language are your modules written?
  • How much data will your modules be processing?
  • Do your modules need any specialized hardware for accelerating their workloads?
  • What are the desired performance characteristics of your solution?
  • What is your hardware budget?