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 产品通过产品的 User Voice 页面跟踪功能请求。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.


主机 OS 与来宾 OS 相匹配

![Host OS matches guest OS](./media/support/edge-on-device.png)

第 1 层Tier 1

下表中列出的系统(不管是公开发布版还是公共预览版)受 Microsoft 的支持,并在每个新版本中进行了测试。The systems listed in the following table are supported by Microsoft, either generally available or in public preview, and are tested with each new release.

操作系统Operating System AMD64AMD64 ARM32v7ARM32v7 ARM64ARM64
Raspbian StretchRaspbian Stretch Raspbian 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 Core, build 17763 Windows IoT Core + AMD64
Windows 10 IoT 企业版内部版本 17763Windows 10 IoT Enterprise, build 17763 Windows 10 IoT Enterprise + 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 操作系统是在 Windows 上运行 Windows 容器的设备的要求,这是受支持的唯一生产配置。The Windows operating systems listed above are the requirements for devices that run Windows containers on Windows, which is the only supported configuration for production. 适用于 Windows 的 Azure IoT Edge 安装包允许在 Windows 上使用 Linux 容器;但是,只能将此配置用于开发和测试。The Azure IoT Edge installation packages for Windows allow the use of Linux containers on Windows; however, this configuration is for development and testing only. 有关详细信息,请参阅使用 Windows 上的 IoT Edge 运行 Linux 容器For more information, see Use IoT Edge on Windows to run Linux containers.

第 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
Raspbian Buster 1Raspbian Buster 1 Raspbian Buster + ARM32v7 Raspbian Buster + ARM64
Ubuntu 20.04 2Ubuntu 20.04 2 Ubuntu 20.04 + AMD64 Ubuntu 20.04 + ARM32v7 Ubuntu 20.04 + ARM64

1 Debian 10 系统(包括 Raspian Buster)使用了 IoT Edge 不支持的 OpenSSL 版本。1 Debian 10 systems, including Raspian Buster, use a version of OpenSSL that IoT Edge doesn't support. 在安装 IoT Edge 之前,请使用以下命令安装较低版本:Use the following command to install an earlier version before installing IoT Edge:

sudo apt-get install libssl1.0.2

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.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.Device.Client SDK。IoT Edge uses the Microsoft.Azure.Device.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.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?