你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure IoT作部署到生产群集

了解如何使用 Azure 门户将 Azure IoT作部署到具有安全设置的 Kubernetes 群集。

如果将 Azure IoT作 的测试实例 部署到群集,并且想要将同一群集用于生产方案,请按照 现有 Azure IoT作实例上的“启用安全设置”中的步骤作。

在您开始之前

本文讨论 Azure IoT作 部署实例,这是两个不同的概念:

  • Azure IoT 操作部署描述了启用 Azure IoT 操作方案的所有组件和资源。 这些组件和资源包括:

    • Azure IoT 操作实例
    • Arc 扩展
    • 自定义位置
    • 可以在 Azure IoT 运营解决方案中配置的资源,例如资产和设备。
  • Azure IoT Operations 实例 是捆绑在 什么是 Azure IoT Operations? 中定义的服务套件的父资源,例如 MQTT 代理、数据流和 OPC UA 的连接器。

讨论部署 Azure IoT 操作时,我们指的是构成部署的完整组件集。 部署存在后,可以查看、管理和更新实例

先决条件

云资源:

开发资源:

  • 已在开发计算机上安装的 Azure CLI。 此方案需要 Azure CLI 2.53.0 或更高版本。 如有必要,请使用 az --version 检查版本,并使用 az upgrade 进行更新。 有关详细信息,请参阅 如何安装 Azure CLI

  • 适用于 Azure CLI 的 Azure IoT 操作扩展。 使用以下命令添加扩展或将其更新到最新版本:

    az extension add --upgrade --name azure-iot-ops
    

群集主机:

  • 具有已启用 Azure Arc 的 Kubernetes 群集,并启用了自定义位置和工作负载标识功能。 如果您没有 Azure Arc 启用的 Kubernetes 群集,请按照《准备您的 Azure Arc 启用 Kubernetes 群集》中的步骤进行操作。

    如果之前已将 Azure IoT 操作部署到群集,请先卸载这些资源,然后再继续操作。 有关详细信息,请参阅 更新 Azure IoT 操作

  • (推荐)在部署 Azure IoT作之前配置自己的证书颁发机构颁发者: 自带颁发者

在 Azure 门户中部署

Azure 门户部署体验是一种帮助程序工具,它基于资源和配置生成部署命令。 最后一步是运行 Azure CLI 命令,因此仍需要上一部分所述的 Azure CLI 先决条件。

  1. 登录到 Azure 门户

  2. 在搜索框中,搜索并选择 Azure IoT作

  3. 选择“ 创建”。

  4. 在“基本信息”选项卡中提供以下信息:

    参数
    订阅 选择包含已启用 Arc 的群集的订阅。
    资源组 选择包含已启用 Arc 的群集的资源组。
    群集名称 选择要将 Azure IoT 操作部署到的群集。
    自定义位置名称 可选:替换自定义位置的默认名称
    部署版本 选择 1.1(GA 版本)或 1.2(预览版)。 如果选择 1.2(预览版本),请选中同意预览条款的框。 有关详细信息,请参阅 IoT作版本

    显示用于从门户部署 Azure IoT Operations 的第一个选项卡的屏幕截图。

  5. 选择“下一步: 配置”

  6. 在“配置”选项卡上,提供以下信息:

    参数
    Azure IoT 操作名称 可选:替换 Azure IoT 操作实例的默认名称
    MQTT 代理配置 可选:编辑 MQTT 代理的默认设置。 在 Azure 门户中,可以配置基数和内存配置文件设置。 若要配置其他设置,包括磁盘支持的消息缓冲区和高级 MQTT 客户端选项,请参阅 Azure CLI 支持高级 MQTT 代理配置
    数据流配置文件配置 可选:编辑数据流的默认设置。 有关详细信息,请参阅 “配置数据流配置文件”。

    显示用于从门户部署 Azure IoT 操作的第二个选项卡的屏幕截图。

  7. 选择“下一步: 依赖项管理”

  8. “依赖项管理”选项卡上,选择现有架构注册表或使用以下步骤创建一个:

    1. 选择“新建”。

    2. 提供架构注册表名称架构注册表命名空间。

    3. 选择“选择 Azure 存储容器”

    4. 从启用了分层命名空间的帐户列表中选择存储帐户,或选择“创建”来创建存储帐户。

      架构注册表需要启用了分层命名空间和公用网络访问的 Azure 存储帐户。 创建新的存储帐户时,请选择“常规用途 v2”存储帐户类型,并将“分层命名空间”设置为“启用”。

      有关配置存储帐户的详细信息,请参阅 生产部署指南

    5. 在存储帐户中选择容器,或选择“容器”创建一个。

    6. 选择“应用”以确认架构注册表配置。

  9. “依赖项管理 ”选项卡上,选择“ 安全设置 部署”选项。

    显示从门户部署 Azure IoT作的第三个选项卡上选择安全设置的屏幕截图。

  10. 在“部署选项”部分,提供以下信息:

    参数
    订阅 选择包含你的 Azure 密钥保管库的订阅。
    Azure Key Vault 选择 Azure Key Vault,或选择“新建”

    确保密钥保管库的权限模型是“Azure 基于角色的访问控制”。 要检查此设置,请选择“管理所选保管库”“设置”>“访问配置”>

    确保使用 角色Key Vault Secrets Officer
    用于机密的用户分配的托管标识 选择标识或选择“新建”
    用户为 AIO 组件分配的托管标识 选择标识或选择“新建”。 不要使用与为机密选择的托管标识相同的托管标识。

    显示在门户中配置 Azure IoT业务的安全设置时的第三个选项卡的屏幕截图。

  11. 选择“下一步: 自动化”

运行 Azure CLI 命令

Azure 门户部署体验的最后一步是运行一组 Azure CLI 命令,将 Azure IoT作部署到群集。 这些命令是根据前面步骤中提供的信息生成的。

在终端的“自动化”选项卡上运行每个 Azure CLI 命令,一次运行一个:

  1. 即使之前已经登录,仍需使用浏览器以交互方式登录到 Azure CLI。 如果未以交互方式登录,则在继续执行下一步以部署 Azure IoT 操作时,可能会收到一条错误消息,指出“设备必须处于受管理状态才能访问资源”

    az login
    
  2. 安装最新的 Azure IoT 操作 CLI 扩展。

    az upgrade
    az extension add --upgrade --name azure-iot-ops
    

    重要

    对于 预览版,需要将 --allow-preview 标志追加到 az extension add 命令,以安装 Azure IoT作 CLI 扩展的预览版。

    az extension add --upgrade --name azure-iot-ops --allow-preview
    
  3. 复制并运行提供的 az iot ops schema registry create 命令,以创建 Azure IoT作组件使用的架构注册表。 如果选择使用现有架构注册表,则此命令不会显示在“自动化”选项卡上。

    注意

    此命令要求你具有角色分配写入权限,因为它会分配角色以授予架构注册表对存储帐户的访问权限。 默认情况下,该角色是内置“存储 Blob 数据参与者”角色,也可以改为创建具有受限权限的自定义角色来进行分配。 有关详细信息,请参阅 az iot ops schema registry create

  4. Azure IoT作使用 命名空间 来组织资产和设备。 每个 Azure IoT作实例对其资产和设备使用单个命名空间。 可以使用现有命名空间或运行 az iot ops ns create 命令来创建 Azure 设备注册表命名空间。 替换为 <my namespace name> 命名空间的唯一名称。

    az iot ops ns create -n <my namespace name> -g $RESOURCE_GROUP
    

    或者,可以在 Azure 门户中创建新的 Azure 设备注册表命名空间:

    1. 在搜索框中,键入并选择 Azure 设备注册表
    2. 在左侧菜单中,选择 “命名空间”。
    3. 然后选择 “+ 创建 ”以创建新命名空间。 请确保使用与已启用 Arc 的 Kubernetes 群集相同的资源组。

    注意

    命名空间资源可从 2507 预览版获取。 如果使用的是早期版本,则命名空间不可用,可以跳过此步骤。

  5. 若要为 Azure IoT作部署准备群集,请复制并运行提供的 az iot ops init 命令。

    提示

    每个群集只需运行一次 init 命令。 如果重用已部署有 Azure IoT 操作版本 0.8.0 的群集,则可跳过此步骤。

    此命令可能需要几分钟才能完成。 可以在终端的部署进度显示中观看进度。

  6. 部署 Azure IoT 操作。 复制并运行提供的 az iot ops create 命令。 此命令可能需要几分钟才能完成。 可以在终端的部署进度显示中观看进度。

    • 如果要使用现有命名空间,请将以下参数添加到 create 命令:

      --ns-resource-id $(az iot ops ns show --name <my namespace name> --resource-group $RESOURCE_GROUP -o tsv --query id)
      
    • 如果要使用预览连接器配置,请将以下参数添加到 create 命令:

      --feature connectors.settings.preview=Enabled
      

      注意

      配置 --feature 参数仅在 最新的 GA 版本中可用。 如果使用的是 2507 预览版,则此参数不可用。

    • 如果已遵循可选先决条件来设置自己的证书颁发者,请将 --trust-settings 参数添加到 create 命令:

      --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
      
  7. 为已部署的 Azure IoT 操作实例启用机密同步。 复制并运行提供的 az iot ops secretsync enable 命令。 此命令:

    • 使用用户分配的托管标识创建联合标识凭据。
    • 向用户分配的托管标识添加角色分配,以访问 Azure Key Vault。
    • 添加与 Azure IoT 操作实例关联的最小机密提供程序类。
  8. 将用户分配的托管标识分配给已部署的 Azure IoT 操作实例。 复制并运行提供的 az iot ops identity assign 命令。 此命令使用指示的已连接群集的 OIDC 颁发者和 Azure IoT 操作服务帐户创建联合标识凭据。

  9. 重启架构注册表 Pod 以应用新标识。

    kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
    
  10. 所有 Azure CLI 命令成功完成后,即可关闭“安装 Azure IoT 操作”向导。

create 命令成功完成后,会有一个正在工作的 Azure IoT 操作实例在群集上运行。 此时,实例已配置为用于生产方案。

验证部署

部署完成后,使用 az iot ops 检查 来评估 IoT Operations Service 部署的运行状况、配置和可用性。 该 check 命令可帮助你在部署和配置中发现问题。

az iot ops check

check 命令会显示有关缺少数据流的警告(这是正常且预料之中的),直到你创建数据流为止。 有关详细信息,请参阅使用数据流处理和路由数据

可以通过向 --detail-level 2 命令添加 check 参数以显示详细试图来检查主题映射、QoS 和消息路由的配置。

可以通过运行以下命令查看所有可用的 Azure IoT Operations CLI 扩展版本:

az iot ops get-versions

后续步骤