更新适用于 Windows 上的 Linux 的 IoT Edge

适用于:yes 图标 IoT Edge 1.1

重要

IoT Edge 1.1 终止支持日期为 2022 年 12 月 13 日。 有关此产品、服务、技术或 API 支持方式的信息,请查看 Microsoft产品生命周期 。 有关更新到最新版本的 IoT Edge 的详细信息,请参阅 更新 IoT Edge

随着适用于 Linux 的 IoT Edge(EFLOW)应用程序发布新版本,需要更新 IoT Edge 设备以获取最新功能和安全性改进。 当有新版本可用时,本文提供有关如何更新 Windows 设备上的 IoT Edge for Linux 的信息。

借助 IoT Edge for Linux on Windows,IoT Edge 可以在 Windows 设备上托管的 Linux 虚拟机中运行。 此虚拟机随 IoT Edge 预安装,没有包管理器,因此无法手动更新或更改任何 VM 组件。 相反,虚拟机使用 Microsoft Update 进行管理,可以自动使组件保持最新。

EFLOW 虚拟机旨在通过 Microsoft Update 可靠地更新。 虚拟机操作系统采用 A/B 更新分区方案,以便利用其中一个分区来确保更新的安全,并在更新过程中出现任何问题时能够实现回滚至先前版本。

每个更新都包含两个主要组件,这些组件可能更新到最新版本。 第一个是 EFLOW 虚拟机和内部组件。 有关 EFLOW 的详细信息,请参阅 适用于 Linux 的 Azure IoT Edge on Windows 组合。 此外,还包括虚拟机基础操作系统。 EFLOW 虚拟机基于 Microsoft CBL-Mariner,每次更新都提供性能和安全修复程序,以确保操作系统包含最新的 CVE 补丁。 作为EFLOW发布说明的一部分,版本指示所用的CBL-Mariner版本,用户可以查看CBL-Mariner发布版本以获取每个版本修复的CVE列表。

第二个组件是与 EFLOW 虚拟机运行和互操作所需的 Windows 运行时组件组。 虚拟机生命周期和互作通过不同的组件进行管理:WSSDAgent、EFLOWProxy 服务和 PowerShell 模块。

EFLOW 更新是有序的,需要按顺序更新每个版本,这意味着若要访问最新版本,必须使用最新可用版本执行全新安装,或将以前的所有服务更新应用到所需版本。

若要在 Windows 上查找最新版本的适用于 Linux 的 Azure IoT Edge,请参阅 EFLOW 版本

使用 Microsoft Update 进行更新

若要接收 IoT Edge for Linux on Windows 更新,应将 Windows 主机配置为接收其他 Microsoft 产品的更新。 默认情况下,在 EFLOW 安装过程中将打开Microsoft更新。 如果在 EFLOW 安装后需要自定义配置,可以按照以下步骤打开/关闭此选项:

  1. 在 Windows 主机上打开“设置”。

  2. 选择“更新和安全性”

  3. 选择“高级选项”。

  4. 将“更新 Windows 时接收其他 Microsoft 产品的更新”按钮切换到“开”。

使用 Windows Server Update Services (WSUS) 更新

Linux on Windows 的 IoT Edge 更新支持使用 WSUS 进行本地更新。 有关 WSUS 的详细信息,请参阅 设备管理概述 - WSUS

脱机手动更新

在某些情况下,如果 Internet 连接受限或有限,可能需要脱机手动应用 EFLOW 更新。 可以通过 Microsoft 更新脱机机制实现这一点。 可以通过以下步骤手动下载和安装适用于 Windows 上的 Linux 的 IoT Edge 更新:

  1. 查看当前安装的 EFLOW 版本。 打开 “设置”,选择 “应用 ->应用”和“功能 ”搜索 Azure IoT Edge LTS

  2. 在 EFLOW - Microsoft 更新目录中搜索并下载所需的更新。

  3. 从下载的 .cab 文件中提取 AzureIoTEdge.msi

  4. 安装提取的AzureIoTEdge.msi

管理 Microsoft 更新

如前所述,适用于 Windows 上的 Linux 的 IoT Edge 更新通过 Microsoft 更新通道进行服务,因此要管理 EFLOW 更新,您必须启用或禁用 Microsoft 更新。 下面列出了自动打开/关闭Microsoft更新的一些方法。 有关管理 OS 更新的详细信息,请参阅 OS 更新

  1. CSP 策略 - 使用 Update/AllowMUUpdateService CSP 策略 - 有关Microsoft更新 CSP 策略的详细信息,请参阅 策略 CSP - MU 更新

  2. 手动管理Microsoft更新 - 有关如何 Opt-In到Microsoft更新的详细信息,请参阅 Opt-In到Microsoft更新

特殊情况:从 HCS 迁移到服务器 SKU 上的 VMMS

如果要将运行早于版本 1.1.2110.0311 的适用于 Linux 的 IoT Edge 的 Windows Server SKU 设备更新到最新可用版本,则需要进行手动迁移。

Update 1.1.2110.0311 引入了对用于 EFLOW Windows Server 部署的 VM 技术(HCS 到 VMMS)的更改。 可以使用以下步骤执行 VM 迁移:

  1. 使用 Microsoft Update,下载并安装 1.1.2110.0311 更新(与任何其他 EFLOW 更新相同,只要启用 EFLOW 更新,就无需手动步骤)。

  2. EFLOW 更新完成后,打开提升的 PowerShell 会话。

  3. 运行迁移脚本:

    Migrate-EflowVmFromHcsToVmms
    

注释

Windows Server SKU 上的全新 EFLOW 1.1.2110.0311 MSI 安装将导致使用 VMMS 技术进行 EFLOW 部署,因此无需迁移。

在 EFLOW 1.1LTS 和 EFLOW 1.4LTS 之间迁移

IoT Edge for Linux on Windows 不支持在不同发布版本之间进行迁移。 如果要从 1.1LTS 或 1.4LTS 版本移动到持续发布(CR)版本或 viceversa,则必须卸载当前版本并安装新的所需版本。

EFLOW 1.1LTS 到 EFLOW 1.4LTS 的迁移是 EFLOW 1.1LTS (1.1.2212.12122) 更新的一部分引入的。 此迁移将处理从 1.1LTS 版本到 1.4LTS 版本的 EFLOW VM 迁移,其中包括:

  • IoT Edge 运行时
  • IoT Edge 配置
  • 容器
  • 网络和 VM 配置
  • 存储的文件

若要在 EFLOW 1.1LTS 到 EFLOW 1.4LTS 之间迁移,请使用以下步骤。

  1. 获取最新的 Azure EFLOW 1.1LTS (1.1.2212.12122) 更新。 如果使用 Windows 更新, 请检查更新 以获取最新的 EFLOW 更新。

  2. 对于自动下载迁移(需要 Internet 连接),请跳过此步骤。 如果 EFLOW VM 没有 Internet 访问权限或受到限制,请在开始迁移之前下载必要的文件。

  3. 打开权限提升的 PowerShell 会话

  4. 启动 EFLOW 迁移

    注释

    使用单个 cmdlet 进行迁移,方法是将 -autoConfirm 标志与 Start-EflowMigration cmdlet 结合使用。 如果已指定,则无需调用 Confirm-EflowMigration 即可继续进行 1.4 迁移。

    1. 如果使用自动下载迁移选项,请运行以下 cmdlet
      Start-EflowMigration
      
    2. 如果在 步骤 2 下载 MSI,请用下载的文件进行迁移
      Start-EflowMigration -standaloneMsiPath "<path-to-folder>\AzureIoTEdge_LTS_1.4.2.12122_X64.msi" 
      
  5. 确认 EFLOW 迁移

    1. 如果使用自动下载迁移选项,请运行以下 cmdlet
      Confirm-EflowMigration
      
    2. 如果在 步骤 2 中下载 MSI,请使用下载的文件执行迁移
      Confirm-EflowMigration -updateMsiPath "<path-to-folder>\AzureIoTEdge_LTS_Update_1.4.2.12122_X64.msi" 
      

如果出于任何原因迁移失败,EFLOW VM 将还原到原始 1.1LTS 版本。 如果要取消迁移,可以使用以下 cmdlet Start-EflowMigration ,然后 Restore-EflowPriorToMigration

有关详细信息,请使用 Start-EflowMigration 命令查看 Confirm-EflowMigrationRestore-EflowPriorToMigrationGet-Help <cmdlet> -full cmdlet 文档。

后续步骤

Windows 版本上查看适用于 Linux 的最新 IoT Edge

详细了解适用于 Windows 的 Linux 上的 IoT Edge 的安全设置