Azure IoT Edge 支持的系统Azure IoT Edge supported systems

本文详述 IoT Edge(不管是正式版还是预览版)支持的系统和组件。This article provides details about which systems and components are supported by IoT Edge, whether officially or in preview.

如果在使用 Azure IoT Edge 服务时遇到问题,可以通过多种方式来寻求支持。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:

报告 bug - 涉及 Azure IoT Edge 产品的大多数开发都在 IoT Edge 开放源代码项目中进行。Reporting bugs - The majority of development that goes into the Azure IoT Edge product happens in the IoT Edge open-source project. 可以在项目的问题页面上报告 bug。Bugs can be reported on the issues page of the project. 修复很快就会从项目实施到产品更新中。Fixes rapidly make their way from the project in to product updates.

Microsoft 客户支持团队 – 拥有 支持计划的用户可以通过直接从 Azure 门户创建支持票证来与 Microsoft 客户支持团队进行沟通。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.

功能请求 - Azure IoT Edge 产品通过产品的“用户之声”页面跟踪功能请求。Feature requests - The Azure IoT Edge product tracks feature requests via the product's User Voice page.

容器引擎Container engines

Azure IoT Edge 模块是以容器形式实现的,因此 IoT Edge 需要容器引擎来启动这些模块。Azure IoT Edge modules are implemented as containers, so IoT Edge needs a container engine to launch them. Microsoft 提供了容器引擎 moby-engine 来满足此要求。Microsoft provides a container engine, moby-engine, to fulfill this requirement. 该容器引擎基于 Moby 开源项目。This container engine is based on the Moby open-source project. Docker CE 和 Docker EE 是其他常用的容器引擎。Docker CE and Docker EE are other popular container engines. 它们也基于 Moby 开放源代码项目并且与 Azure IoT Edge 兼容。They're also based on the Moby open-source project and are compatible with Azure IoT Edge. Microsoft 对使用那些容器引擎的系统提供尽力而为的支持;但是,Microsoft 不能为其中的问题提供修复。Microsoft provides best effort support for systems using those container engines; however, Microsoft can't ship fixes for issues in them. 因此,Microsoft 建议在生产系统上使用 moby-engine。For this reason, Microsoft recommends using moby-engine on production systems.


作为容器运行时的 Moby 引擎

![The Moby engine as container runtime](./media/support/only-moby-for-production.png)

操作系统Operating systems

Azure IoT Edge 在大多数可以运行容器的操作系统上运行;但是,并非所有这些系统都受到同等支持。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.

  • 支持第 1 层系统。Tier 1 systems are supported. 对于第 1 层系统,Microsoft:For tier 1 systems, Microsoft:
    • 将此操作系统包括在自动化测试中has this operating system in automated tests
    • 为它们提供安装程序包provides installation packages for them
  • 第 2 层系统与 Azure IoT Edge 兼容并且可以相对容易地使用。Tier 2 systems are compatible with Azure IoT Edge and can be used relatively easily. 对于第 2 层系统:For tier 2 systems:
    • Microsoft 已在平台上进行了非正式测试,或者知道合作伙伴已在平台上成功运行 Azure IoT EdgeMicrosoft 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

主机 OS 系列必须始终与模块容器内部使用的来宾 OS 系列相匹配。The family of the host OS must always match the family of the guest OS used inside a module's container. 换言之,在 Linux 上只能使用 Linux 容器,在 Windows 上只能使用 Windows 容器。In other words, you can only use Linux containers on Linux and Windows containers on Windows. 使用 Windows 时,仅支持进程隔离容器,而不支持 Hyper-V 隔离容器。When using Windows, only process isolated containers are supported, not Hyper-V isolated containers.

IoT Edge for Linux on Windows 使用 Windows 主机上运行的 Linux 虚拟机中的 IoT Edge。IoT Edge for Linux on Windows uses IoT Edge in a Linux virtual machine running on a Windows host. 通过这种方式,可以在 Windows 设备上运行 Linux 模块。In this way, you can run Linux modules on a Windows device.

第 1 层Tier 1

下表中列出的系统(不管是公开发布版还是公共预览版)受 Microsoft 的支持,并在每个新版本中进行了测试。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.

Azure IoT Edge 支持构建为 Linux 或 Windows 容器的模块。Azure IoT Edge supports modules built as either Linux or Windows containers. 可以将 Linux 容器部署到 Linux 设备,或使用 IoT Edge for Linux on Windows 将 Linux 容器部署到 Windows 设备。Linux containers can be deployed to Linux devices or deployed to Windows devices using IoT Edge for Linux on Windows. Windows 容器只能部署到 Windows 设备。Windows containers can only be deployed to Windows devices.

Linux 容器Linux containers

构建为 Linux 容器的模块可以部署到 Linux 或 Windows 设备。Modules built as Linux containers can be deployed to either Linux or Windows devices. 对于 Linux 设备,IoT Edge 运行时会直接安装在主机设备上。For Linux devices, the IoT Edge runtime is installed directly on the host device. 对于 Windows 设备,使用 IoT Edge 运行时预生成的 Linux 虚拟机会在主机设备上运行。For Windows devices, a Linux virtual machine prebuilt with the IoT Edge runtime runs on the host device.

IoT Edge for Linux on Windows 目前为公共预览版,但我们建议通过它在 Windows 设备上运行 IoT Edge。IoT Edge for Linux on Windows is currently in public preview, but is the recommended way to run IoT Edge on Windows devices.

操作系统Operating System AMD64AMD64 ARM32v7ARM32v7 ARM64ARM64
Raspberry Pi OS StretchRaspberry Pi OS Stretch Raspberry Pi OS Stretch + ARM32v7
Ubuntu Server 16.04Ubuntu Server 16.04 Ubuntu Server 16.04 + AMD64 公共预览版Public preview
Ubuntu Server 18.04Ubuntu Server 18.04 Ubuntu Server 18.04 + AMD64 公共预览版Public preview
Windows 10 IoT 企业版内部版本 17763Windows 10 IoT Enterprise, build 17763 Windows 10 IoT Enterprise + AMD64
Windows 10 IoT 核心版内部版本 17763Windows 10 IoT Core, build 17763 Windows IoT Core + AMD64
Windows Server 2019 内部版本 17763Windows Server 2019, build 17763 Windows Server 2019 + AMD64
Windows Server IoT 2019 内部版本 17763Windows Server IoT 2019, build 17763 Windows Server IoT 2019 + AMD64

所有 Windows 操作系统都必须是 1809 版(内部版本 17763)或更高版本。All Windows operating systems must be version 1809 (build 17763) or later.

Windows 容器Windows containers

构建为 Windows 容器的模块只能部署到 Windows 设备。Modules built as Windows containers can be deployed only to Windows devices.

操作系统Operating System AMD64AMD64 ARM32v7ARM32v7 ARM64ARM64
Windows 10 IoT 企业版Windows 10 IoT Enterprise check1
Windows 10 IoT Core1Windows 10 IoT Core1
check1
Windows Server 2019Windows Server 2019 check1
Windows Server IoT 2019Windows Server IoT 2019
check1

1 在版本 1.0.10 后将不支持 Windows 10 IoT Core1 Windows 10 IoT Core will not be supported after version 1.0.10

所有 Windows 操作系统都必须是 1809 版(内部版本 17763)。All Windows operating systems must be version 1809 (build 17763). Windows 的这一特定内部版本是 Windows 上的 IoT Edge 所必需的,因为 Windows 容器的版本必须与主机 Windows 设备的版本完全匹配。The specific build of Windows is required for IoT Edge on Windows because the version of the Windows containers must exactly match the version of the host Windows device. Windows 容器当前只使用内部版本 17763。Windows containers currently only use build 17763.

第 2 层Tier 2

下表中列出的系统被视为兼容 Azure IoT Edge,但未由 Microsoft 进行积极测试或维护。The systems listed in the following table are considered compatible with Azure IoT Edge, but are not actively tested or maintained by Microsoft.

操作系统Operating System AMD64AMD64 ARM32v7ARM32v7 ARM64ARM64
CentOS 7.5CentOS 7.5 CentOS + AMD64 CentOS + ARM32v7 CentOS + ARM64
Debian 8Debian 8 Debian 8 + AMD64 Debian 8 + ARM32v7 Debian 8 + ARM64
Debian 9Debian 9 Debian 9 + AMD64 Debian 9 + ARM32v7 Debian 9 + ARM64
Debian 10 1Debian 10 1 Debian 10 + AMD64 Debian 10 + ARM32v7 Debian 10 + ARM64
Mentor Embedded Linux Flex OSMentor 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 OSMentor Embedded Linux Omni OS Mentor Embedded Linux Omni OS + AMD64 Mentor Embedded Linux Omni OS + ARM64
RHEL 7.5RHEL 7.5 RHEL 7.5 + AMD64 RHEL 7.5 + ARM32v7 RHEL 7.5 + ARM64
Ubuntu 16.04Ubuntu 16.04 Ubuntu 16.04 + AMD64 Ubuntu 16.04 + ARM32v7 Ubuntu 16.04 + ARM64
Ubuntu 18.04Ubuntu 18.04 Ubuntu 18.04 + AMD64 Ubuntu 18.04 + ARM32v7 Ubuntu 18.04 + ARM64
Wind River 8Wind River 8 Wind River 8 + AMD64
YoctoYocto Yocto + AMD64 Yocto + ARM32v7 Yocto + ARM64
Raspberry Pi OS Buster 1Raspberry Pi OS Buster 1 Raspberry Pi OS Buster + ARM32v7 Raspberry Pi OS Buster + ARM64
Ubuntu 20.04 2Ubuntu 20.04 2 Ubuntu 20.04 + AMD64 Ubuntu 20.04 + ARM32v7 Ubuntu 20.04 + ARM64

2 Azure IoT Edge 版本存储库中的 Debian 9 包应该可以直接与 Ubuntu 20.04 配合使用。2 The Debian 9 packages from the Azure IoT Edge releases repo should work out of the box with Ubuntu 20.04.

发行版本Releases

IoT Edge 发行资产和发行说明在 azure-iotedge 版本页上提供。IoT Edge release assets and release notes are available on the azure-iotedge releases page. 本部分介绍这些发行说明中的信息,让你更轻松地直观显示每个版本的组件。This section reflects information from those release notes to help you visualize the components of each version more easily.

IoT Edge 组件可以单独安装或更新,并后向兼容旧版中的组件。IoT Edge components can be installed or updated individually, and are backwards compatible with components from older versions. 下表列出了每个版本中包含的组件:The following table lists the components included in each release:

发布Release 安全守护程序Security daemon Edge 中心Edge hub
Edge 代理Edge agent
LibiothsmLibiothsm MobyMoby
1.0.101.0.10 1.0.101.0.10 1.0.101.0.10 1.0.101.0.10
1.0.91.0.9 1.0.9.51.0.9.5
1.0.9.41.0.9.4
1.0.9.31.0.9.3
1.0.9.21.0.9.2
1.0.9.11.0.9.1
1.0.91.0.9
1.0.9.51.0.9.5
1.0.9.41.0.9.4
1.0.9.31.0.9.3
1.0.9.21.0.9.2
1.0.9.11.0.9.1
1.0.91.0.9
1.0.9.51.0.9.5
1.0.9.41.0.9.4
1.0.9.31.0.9.3
1.0.9.21.0.9.2
1.0.9.11.0.9.1
1.0.91.0.9
1.0.81.0.8 1.0.81.0.8 1.0.8.51.0.8.5
1.0.8.41.0.8.4
1.0.8.31.0.8.3
1.0.8.21.0.8.2
1.0.8.11.0.8.1
1.0.81.0.8
1.0.81.0.8 3.0.63.0.6
1.0.71.0.7 1.0.7.11.0.7.1
1.0.71.0.7
1.0.7.11.0.7.1
1.0.71.0.7
1.0.7.11.0.7.1
1.0.71.0.7
3.0.53.0.5
3.0.4(ARMv7hl,CentOS)3.0.4 (ARMv7hl, CentOS)
1.0.61.0.6 1.0.6.11.0.6.1
1.0.61.0.6
1.0.6.11.0.6.1
1.0.61.0.6
1.0.6.11.0.6.1
1.0.61.0.6
1.0.51.0.5 1.0.51.0.5 1.0.51.0.5 1.0.51.0.5 3.0.23.0.2

IoT Edge 使用 Microsoft.Azure.Devices.Client SDK。IoT Edge uses the Microsoft.Azure.Devices.Client SDK. 有关详细信息,请参阅 Azure IoT C# SDK GitHub 存储库Azure SDK for .NET 参考内容For more information, see the Azure IoT C# SDK GitHub repo or the Azure SDK for .NET reference content. 以下列表显示了用于测试每个版本的客户端 SDK 版本:The following list shows the version of the client SDK that each release is tested against:

  • IoT Edge 1.0.10:客户端 SDK 1.28.0IoT Edge 1.0.10: Client SDK 1.28.0
  • IoT Edge 1.0.9:客户端 SDK 1.21.1IoT Edge 1.0.9: Client SDK 1.21.1
  • IoT Edge 1.0.8:客户端 SDK 1.20.3IoT Edge 1.0.8: Client SDK 1.20.3
  • IoT Edge 1.0.7:客户端 SDK 1.20.1IoT Edge 1.0.7: Client SDK 1.20.1
  • IoT Edge 1.0.6:客户端 SDK 1.17.1IoT Edge 1.0.6: Client SDK 1.17.1
  • IoT Edge 1.0.5:客户端 SDK 1.17.1IoT Edge 1.0.5: Client SDK 1.17.1

虚拟机Virtual Machines

Azure IoT Edge 可在虚拟机中运行。Azure IoT Edge can be run in virtual machines. 当客户想要利用边缘智能增强现有的基础结构时,经常会使用虚拟机作为 IoT Edge 设备。Using a virtual machine as an IoT Edge device is common when customers want to augment existing infrastructure with edge intelligence. 主机 VM OS 系列必须与模块容器内部使用的来宾 OS 系列相匹配。The family of the host VM OS must match the family of the guest OS used inside a module's container. 直接在设备上运行 Azure IoT Edge 时,同样要满足此要求。This requirement is the same as when Azure IoT Edge is run directly on a device. Azure IoT Edge不区分底层虚拟化技术,将在以 Hyper-V 和 vSphere 等平台为后盾的 VM 中工作。Azure IoT Edge is agnostic of the underlying virtualization technology and works in VMs powered by platforms like Hyper-V and vSphere.


VM 中的 Azure IoT Edge

![Azure IoT Edge in a VM](./media/support/edge-on-vm.png)

最低系统要求Minimum system requirements

在 Raspberry Pi3 等小型设备以及服务器级硬件上,Azure IoT Edge 都能非常顺利地运行。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?