你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用范围:
IoT Edge 1.5
IoT Edge 1.4
重要
IoT Edge 1.5 LTS 是受支持的版本。 截至 2024 年 11 月 12 日,IoT Edge 1.4 LTS 的生命周期结束。
随着IoT Edge服务发布新版本,请更新IoT Edge设备以获取最新功能和安全性改进。 本文提供有关在新版本可用时如何更新IoT Edge设备的信息。
如果要移动到较新版本,则需要更新IoT Edge设备的两个逻辑组件。
安全性子系统 - 它在设备上运行,处理基于安全性的任务,并在设备启动时启动模块。 只能从设备本身更新 安全子系统 。
IoT Edge runtime - IoT Edge运行时由IoT Edge中心(edgeHub)和IoT Edge代理(edgeAgent)模块组成。 根据部署的结构,可以从设备或远程更新运行时。
更新方法
参考本文的各个部分更新设备上的安全子系统和运行时容器。
补丁版本
在修补程序版本之间升级时(例如从 1.5.1 升级到 1.5.2),更新顺序并不重要。 您可以在升级安全子系统或运行时容器之前或之后进行另一项升级。 若要在修补程序版本之间更新,请执行以下操作:
可以随时对升级过程进行故障排除。
主要或次要版本
在主要版本或次要版本(例如从 1.4 升级到 1.5)之间时,请同时更新安全子系统和运行时容器。 在发布之前,产品团队会测试安全子系统和运行时容器版本组合。 若要在主要或次要产品版本之间更新,请执行以下操作:
在设备上,使用命令
sudo iotedge system stop停止 IoT Edge,然后使用 卸载。在设备上,安装 IoT Edge。
如果您正在使用
iotedge config import导入旧配置,请修改生成的/etc/aziot/config.toml文件中的 [agent.config] 映像,以便 edgeAgent 使用 1.5 映像。有关详细信息,请参阅 配置IoT Edge设备设置。
在 IoT Hub 中,更新模块部署以引用最新的系统模块。
在设备上,使用
sudo iotedge config apply启动IoT Edge。
可以随时对升级过程进行故障排除。
更新安全子系统
IoT Edge安全子系统包括一组本机组件,需要使用 IoT Edge 设备上的包管理器进行更新。
使用命令 iotedge version 检查设备上运行的安全子系统的版本。 如果使用 Windows 上的 linux IoT Edge,则需要通过 SSH 连接到 Linux 虚拟机来检查版本。
在 Linux x64 设备上,使用 apt-get 或相应的包管理器将安全子系统更新到最新版本。
更新apt:
sudo apt-get update
注意
有关如何从Microsoft获取最新存储库配置的说明,请参阅 Install IoT Edge 的初步步骤。
检查可用的IoT Edge版本:
apt list -a aziot-edge
更新IoT Edge:
sudo apt-get install aziot-edge
运行 apt-get install aziot-edge 会升级安全子系统,并安装标识服务aziot-identity-service 作为必需的依赖项。
然后,重新应用配置以确保系统已完全更新。
sudo iotedge config apply
更新运行时容器
更新IoT Edge代理和IoT Edge中心容器的方式取决于是在部署中使用滚动标记(如 1.5)还是特定标记(如 1.5.1)。
使用命令iotedge logs edgeAgent或iotedge logs edgeHub检查设备上当前设备上的IoT Edge代理和IoT Edge中心模块的版本。 如果在 Windows 上使用适用于 Linux 的 IoT Edge,则需要通过 SSH 连接到 Linux 虚拟机来检查运行时模块版本。
了解IoT Edge标记
IoT Edge 代理和 IoT Edge 中心镜像使用与其关联的 IoT Edge 版本相匹配的标签。 使用两种不同的方法标记运行时映像:
滚动标记 - 仅使用版本号的前两位数字来获取匹配这些数字的最新映像。 例如,只要有新版本发布,1.5 就会更新为指向最新的 1.5.x 版本。 如果IoT Edge设备上的容器运行时再次拉取映像,则运行时模块将更新到最新版本。 Azure 门户中的部署默认使用滚动更新标记。 使用此方法进行开发。
特定标记 - 使用版本号的所有三个值,以显式设置映像版本。 例如,1.5.0 在初始版本后不会更改。 准备好更新时,可以在部署清单中声明新的版本号。 将此方法用于生产目的。
更新滚动标记映像
如果在部署中使用滚动标记(例如), mcr.microsoft.com/azureiotedge-hub:**1.5**则需要强制设备上的容器运行时拉取最新版本的映像。
从 IoT Edge 设备中删除映像的本地版本。 在Windows计算机上,卸载安全子系统也会删除运行时映像,因此无需再次执行此步骤。
docker rmi mcr.microsoft.com/azureiotedge-hub:1.5
docker rmi mcr.microsoft.com/azureiotedge-agent:1.5
可能需要使用强制 -f 标志来删除图像。
IoT Edge服务会拉取最新版本的运行时映像,并自动在设备上启动它们。
更新特定标签镜像
如果在部署中使用特定标记(例如), mcr.microsoft.com/azureiotedge-hub:**1.5**请更新部署清单中的标记,并将更改应用到设备。
在 Azure 门户中的 IoT Hub 中,选择IoT Edge设备,然后选择 Set Modules。
在“模块”选项卡上,选择“运行时设置”。
在“运行时设置”中,使用所需的版本更新“Edge 代理”部分中的“映像 URI”值。 例如,
仍未选择 应用 。 选择Edge Hub选项卡,并使用相同的所需版本更新映像 URI字段。 例如,
mcr.microsoft.com/azureiotedge-hub:1.5。选择“应用”以保存更改。
选择“查看 + 创建”,查看 JSON 文件中显示的部署,然后选择“创建”。
更新合作伙伴模块 URI
如果使用合作伙伴模块,请使用合作伙伴提供的映像 URI 更新模块部署。 请联系 IoT Edge 模块发布者获取更新的容器映像 URI。 使用发布者提供的新映像 URI 更新设备配置。
- 登录到 Azure 门户并导航到IoT Hub。
- 在左侧窗格上,选择“设备管理”菜单下的“设备”。
- 从列表中选择使用合作伙伴模块的IoT Edge设备。
- 在上方栏中,选择“设置模块”。
- 选择要使用新映像 URI 更新的IoT Edge合作伙伴模块。
- 使用发布者提供的新图像 URI 来更新图像 URI值。
- 选择“应用”以保存更改。
- 选择“查看 + 创建”,查看 JSON 文件中显示的部署,然后选择“创建”。
验证版本是否匹配
在设备上,使用
iotedge version检查安全子系统版本。 输出包括主要、次要和修订版本号。 例如 iotedge 1.5.13。在设备部署运行时设置中,验证 edgeHub 和 edgeAgent 映像 URI 版本是否与安全子系统的主要和次要版本匹配。 如果安全子系统版本为 1.5.15,则映像版本为 1.5。 例如 mcr.microsoft.com/azureiotedge-hub:1.5 和 mcr.microsoft.com/azureiotedge-agent:1.5。
注意
将IoT Edge安全子系统和运行时容器更新为相同的受支持的发布版本。 虽然支持不匹配的版本,但Microsoft尚未测试所有版本组合。
若要查找最新版本的 Azure IoT Edge,请参阅 Azure IoT Edge 版本。
故障排除
可以随时通过在设备中运行以下命令来查看系统的日志。
使用 check 命令开始故障排除。 此命令会针对常见问题运行一系列配置测试和连接测试。
sudo iotedge check --verbose若要查看IoT Edge系统的状态,请运行:
sudo iotedge system status若要查看主机组件日志,请运行:
sudo iotedge system logs若要检查 edgeAgent 和 edgeHub 报告的定期问题,请运行:
请务必将
<module>替换为您自己的模块名称。 如果没有问题,将不显示任何输出。sudo iotedge logs <module>
有关详细信息,请参阅 排除您的 IoT Edge 设备故障。
后续步骤
查看最新的 Azure IoT Edge 版本。