共用方式為


將 Azure IoT 操作部署至已啟用 Arc 的 Kubernetes 叢集

了解如何使用 Azure 入口網站將 Azure IoT 操作部署至 Kubernetes 叢集。

在本文中,我們將討論 Azure IoT 操作「部署」和「執行個體」,這是兩個不同的概念:

  • Azure IoT 操作「部署」會描述所有能啟用 Azure IoT 操作案例的元件和資源。 這些元件和資源包括:

    • Azure IoT 操作執行個體
    • Arc 延伸模組
    • 自訂位置
    • 您可以在 Azure IoT 操作解決方案中設定的資源,例如資產和資產端點。
  • Azure IoT 操作「執行個體」是一種父資源,可組合什麼是 Azure IoT 操作?中所定義的服務套件,例如適用於 OPC UA 的 MQTT 代理程式、資料流和連接器。

當我們提到部署 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 IoT 操作之前,請先設定您自己的憑證授權單位簽發者:攜帶您自己的簽發者

部署

Azure 入口網站部署體驗是協助程式工具,可根據您的資源和設定產生部署命令。 最後一個步驟是執行 Azure CLI 命令,因此您仍然需要上一節所述的 Azure CLI 必要條件。

  1. Azure 入口網站中,搜尋並選取 [Azure IoT 操作]

  2. 選取 [建立]

  3. 在 [基本概念] 索引標籤中提供下列資訊:

    參數
    訂用帳戶 選取包含已啟用 Arc 之叢集的訂用帳戶。
    資源群組 選取包含已啟用 Arc 之叢集的資源群組。
    叢集名稱 選取您要作為 Azure IoT 操作部署目的地的叢集。
    自訂位置名稱 選擇性:取代自訂位置的預設名稱。
    連接器 選擇性:選取要部署的 ONVIF 連接器。 ONVIF 連接器是預覽功能,可讓您連線到符合 ONVIF 規範的相機。

    螢幕擷取畫面,顯示從入口網站部署 Azure IoT 操作的第一個索引標籤。

  4. 選取 [下一步:設定]

  5. 在 [設定] 索引標籤上,提供下列資訊:

    參數
    Azure IoT 操作名稱 選擇性:取代 Azure IoT 操作執行個體的預設名稱。
    MQTT 代理程式設定 選擇性:編輯 MQTT 代理程式的預設設定。 在 Azure 入口網站中,您可以設定基數和記憶體設定檔設定。 若要設定其他設定,包括磁碟支援的訊息緩衝區和進階 MQTT 用戶端選項,請參閱適用於進階 MQTT 代理程式設定的 Azure CLI 支援
    資料流設定檔設定 選擇性:編輯資料流的預設設定。 如需詳細資訊,請參閱設定資料流設定檔

    螢幕擷取畫面,顯示從入口網站部署 Azure IoT 操作的第二個索引標籤。

  6. 選取 [下一步:相依性管理]

  7. 在 [相依性管理] 索引標籤上,選取現有的結構描述登錄,或使用下列步驟來建立一個:

    1. 選取 [建立新的]

    2. 提供 [結構描述登錄名稱] 和 [結構描述登錄命名空間]

    3. 選取 [選取 Azure 儲存體容器]

    4. 從已啟用階層命名空間的帳戶清單中選擇儲存體帳戶,或選取 [建立] 以建立帳戶。

      結構描述登錄需要已啟用階層命名空間和公用網路存取的 Azure 儲存體帳戶。 建立新的儲存體帳戶時,請選擇 [一般用途 v2] 儲存體帳戶類型,並將 [階層命名空間] 設定為 [已啟用]

      如需設定記憶體帳戶的詳細資訊,請參閱 生產部署指導方針

    5. 在儲存體帳戶中選取容器,或選取 [容器] 以建立容器。

    6. 選取 [套用] 以確認結構描述登錄設定。

  8. 在 [相依性管理] 索引標籤上,選取 [測試設定] 或 [安全設定部署] 選項。 如果您不確定哪一個適合您的案例,請檢閱部署詳細資料 > 選擇您的功能中的指導。

    根據您的選擇,請依照下列步驟執行下列其中一項:

使用測試設定進行部署

如果您選擇 [相依性管理] 索引標籤上的 [測試設定] 選項,請使用這些步驟。

  1. 選取 [下一步:自動化]

  2. 一次執行一個,在終端機的 [自動化] 索引標籤上執行每個 Azure CLI 命令:

    1. 使用瀏覽器以互動方式登入 Azure CLI (即使之前已登入也一樣)。 如果您並未以互動方式登入,則可能會收到錯誤,指出「您的裝置必須受到管理才能存取您的資源」

      az login
      
    2. 如果您尚未安裝,請安裝最新的 Azure IoT Operations CLI 擴充功能。

      az extension add --upgrade --name azure-iot-ops
      
    3. 建立 Azure IoT 操作元件將使用的結構描述登錄。 複製並執行提供的 az iot ops schema registry create 命令。

      如果您選擇使用現有的結構描述登錄,此命令不會顯示在 [自動化] 索引標籤上。

    4. 準備 Azure IoT 操作部署的叢集。 複製並執行提供的 az iot ops init 命令。

      提示

      每個叢集只需要執行一次 init 命令。 如果您已遵循選擇性的先決條件來設定自己的憑證授權單位簽發者,請遵循攜帶您自己的簽發者中的步驟。

      此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度顯示中的進度。

    5. 部署 Azure IoT 操作。 複製並執行提供的 az iot ops create 命令。

      • 如果您要使用預覽連接器組態,請將下列參數新增至 create 命令:

        --feature connectors.settings.preview=Enabled
        
      • 如果您已遵循選擇性必要條件來準備叢集以取得可檢視性,請將下列參數新增至 create 命令:

        參數 說明
        --ops-config observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> 提供您在 otel-collector-values.yaml 檔案中設定的 OpenTelemetry (OTel) 收集器位址。

        [設定可檢視性] 中使用的範例值是 fullnameOverride=aio-otel-collectorgrpc.endpoint=4317
        --ops-config observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> 提供您在 otel-collector-values.yaml 檔案中設定的 check_interval 值。

        [設定可檢視性] 中使用的範例值是 check_interval=60
      • 如果您遵循選擇性的必要條件來設定您自己的憑證授權單位簽發者,請將 --trust-settings 參數新增至 create 命令:

        --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
        

      此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度顯示中的進度。

  3. 一旦所有 Azure CLI 命令都成功完成,您就可以關閉安裝 Azure IoT 操作精靈。

create 命令成功完成之後,您就會有在叢集上執行的 Azure IoT 操作執行個體。 此時,您的執行個體已針對大部分測試和評估案例進行設定。

如果您想要在未來的任何時間點為實際執行案例準備執行個體,請遵循在現有的 Azure IoT 操作執行個體上啟用安全設定中的步驟。

使用安全設定進行部署

如果您選擇 [相依性管理] 索引標籤上的 [安全設定] 選項,請使用這些步驟。

  1. 在 [部署選項] 區段中,提供下列資訊:

    參數
    訂用帳戶 選取包含 Azure 金鑰保存庫的訂用帳戶。
    Azure Key Vault 選取 Azure 金鑰保存庫,或選取 [新建]

    請確定您的金鑰保存庫具有 Azure 角色型存取控制作為其權限模型。 若要檢查此設定,請選取 [管理選取的保存庫]>[設定]>[存取設定]

    請務必使用 角色Key Vault Secrets Officer
    適用於祕密的使用者指派的受控識別 選取身分識別,或選取 [新建]
    適用於 AIO 元件的使用者指派的的受控識別 選取身分識別,或選取 [新建]。 請勿使用與您為祕密選取的受控識別相同的受控識別。

    螢幕擷取畫面,顯示從入口網站部署 Azure IoT 操作的第三個索引標籤上設定安全設定。

  2. 選取 [下一步:自動化]

  3. 一次執行一個,在終端機的 [自動化] 索引標籤上執行每個 Azure CLI 命令:

    1. 使用瀏覽器以互動方式登入 Azure CLI (即使之前已登入也一樣)。 如果未以互動方式登入,您可能會在繼續進行下一個步驟來部署 Azure IoT 操作時收到錯誤,內容指出「您的裝置必須受到管理才能存取資源」

      az login
      
    2. 安裝最新的 Azure IoT 操作 CLI 延伸模組。

      az upgrade
      az extension add --upgrade --name azure-iot-ops
      
    3. 建立 Azure IoT 操作元件將使用的結構描述登錄。 複製並執行提供的 az iot ops schema registry create 命令。

      如果您選擇使用現有的結構描述登錄,此命令不會顯示在 [自動化] 索引標籤上。

      附註

      此命令需要您具有角色指派寫入權限,因為它會指派角色來授與儲存體帳戶的結構描述登錄存取權。 根據預設,此角色是內建的儲存體 Blob 資料參與者角色,或者您可以建立具有限制權限的自訂角色來改為指派。 如需詳細資訊,請參閱 az iot ops schema registry create

    4. 準備 Azure IoT 操作部署的叢集。 複製並執行提供的 az iot ops init 命令。

      提示

      每個叢集只需要執行一次 init 命令。 如果您要重複使用已部署 Azure IoT 操作 0.8.0 版的叢集,您可以略過此步驟。

      此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度顯示中的進度。

    5. 部署 Azure IoT 操作。 複製並執行提供的 az iot ops create 命令。

      • 如果您要使用預覽連接器組態,請將下列參數新增至 create 命令:

        --feature connectors.settings.preview=Enabled
        
      • 如果您已遵循選擇性必要條件來準備叢集以取得可檢視性,請將下列選擇性參數新增至 create 命令:

      選擇性參數 說明
      --ops-config observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT> 提供您在 otel-collector-values.yaml 檔案中設定的 OpenTelemetry (OTel) 收集器位址。

      [設定可檢視性] 中使用的範例值是 fullnameOverride=aio-otel-collectorgrpc.endpoint=4317
      --ops-config observability.metrics.exportInternalSeconds=<CHECK_INTERVAL> 提供您在 otel-collector-values.yaml 檔案中設定的 check_interval 值。

      [設定可檢視性] 中使用的範例值是 check_interval=60

      此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度顯示中的進度。

    6. 為已部署的 Azure IoT 操作執行個體啟用祕密同步處理。 複製並執行提供的 az iot ops secretsync enable 命令。

      此命令:

      • 使用使用者指派的受控識別建立同盟身分識別認證。
      • 將角色指派新增至使用者指派的受控識別,以存取 Azure Key Vault。
      • 新增與 Azure IoT 操作執行個體相關聯的最小祕密提供者類別。
    7. 將使用者指派的受控識別指派給已部署的 Azure IoT 操作執行個體。 複製並執行提供的 az iot ops identity assign 命令。

      此命令會使用所指示連線叢集的 OIDC 簽發者和 Azure IoT 操作服務帳戶,來建立同盟身分識別認證。

  4. 一旦所有 Azure CLI 命令都成功完成,您就可以關閉安裝 Azure IoT 操作精靈。

create 命令成功完成之後,您就會有在叢集上執行的 Azure IoT 操作執行個體。 此時,您的執行個體已針對實際執行案例進行設定。

驗證部署

部署完成之後,請使用 az iot ops check 來評估 IoT 操作服務部署的健康情況、設定和可用性。 檢查命令可協助您在部署和設定中找到問題。

az iot ops check

check 命令會顯示遺漏資料流的警告,這是正常且預期的,直到您建立資料流為止。 如需詳細資訊,請參閱使用資料流處理和路由資料

您可以藉由將 --detail-level 2 參數新增至 check 命令,以檢查主題對應、QoS 和訊息路由的設定,以取得詳細資訊檢視。

後續步驟

如果您的元件需要連線到 SQL 或 Fabric 等 Azure 端點,請了解如何 管理 Azure IoT 操作部署的祕密