共用方式為


將 Azure IoT 作業部署至生產叢集

瞭解如何使用 Azure 入口網站,將 Azure IoT 作業部署至具有安全設定的 Kubernetes 叢集。

如果您已將 Azure IoT 作業 的測試實例 部署到叢集,而且想要在生產案例中使用相同的叢集,請遵循在 現有 Azure IoT 作業實例上啟用安全設定中的步驟。

開始之前

本文討論 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 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.2(最新版本) 版本。 如需詳細資訊,請參閱 IoT作業版本
  5. 選取 [下一步:設定]

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

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

    這是一張顯示從入口網站部署 Azure IoT Operations 的第二個分頁的截圖。

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

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

    1. 選取 [建立新的]

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

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

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

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

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

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

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

  9. Azure IoT 作業會使用 命名空間 來組織資產和裝置。 每個 Azure IoT 作業實例都會針對其資產和裝置使用單一命名空間。 在 相依性管理 標籤中,選擇一個現有的 Azure 裝置登錄檔命名空間,或使用以下步驟建立一個:

    1. 選取 [建立新的]

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

      參數
      訂用帳戶 選取您的訂用帳戶。
      資源群組 選擇包含你 Azure IoT Operations 實例的資源群組。
      名稱 為你的命名空間提供一個獨特的名稱。
      區域 選擇 Azure 區域來儲存你的命名空間。

      選取 下一步 以繼續。

    3. 標籤標籤頁 ,你可以選擇為你的命名空間新增標籤。 選取 下一步 以繼續。

    4. Review + 建立 標籤中,檢視你的設定,選擇 建立 以建立命名空間。

    5. 回到 相依管理 標籤,從列表中選取新建立的命名空間。

  10. 在 [ 相依性管理] 索引標籤 上,選取 [ 安全設定 部署] 選項。

    這是一張截圖,顯示在第三個分頁選擇安全設定,從入口網站部署 Azure IoT Operations 的過程。

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

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

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

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

    此為從入口網站截取的畫面,顯示在第三個標籤頁上設定用於部署 Azure IoT Operations 的安全設定。

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

執行 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
    
  3. 複製並執行提供的 az iot ops schema registry create 命令,以建立 Azure IoT Operations 元件所使用的架構登錄。 如果您選擇使用現有的結構描述登錄,此命令不會顯示在 [自動化] 索引標籤上。

    附註

    此命令需要您具有角色指派寫入權限,因為它會指派角色來授與儲存體帳戶的結構描述登錄存取權。 根據預設,此角色是內建的儲存體 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 命令。 此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度顯示中的進度。

    如果您遵循選擇性的必要條件來設定您自己的憑證授權單位簽發者,請將 --trust-settings 參數新增至 create 命令:

    --trust-settings configMapName=<CONFIGMAP_NAME> configMapKey=<CONFIGMAP_KEY_WITH_PUBLICKEY_VALUE> issuerKind=<CLUSTERISSUER_OR_ISSUER> issuerName=<ISSUER_NAME>
    
  6. 為已部署的 Azure IoT 操作執行個體啟用祕密同步處理。 複製並執行提供的 az iot ops secretsync enable 命令。 此命令:

    • 使用使用者指派的受控識別建立同盟身分識別認證。
    • 將角色指派新增至使用者指派的受控識別,以存取 Azure Key Vault。
    • 新增與 Azure IoT 操作執行個體相關聯的最小祕密提供者類別。
  7. 將使用者指派的受控識別指派給已部署的 Azure IoT 操作執行個體。 複製並執行提供的 az iot ops identity assign 命令。 此命令會使用所指示連線叢集的 OIDC 簽發者和 Azure IoT 操作服務帳戶,來建立同盟身分識別認證。

  8. 重新啟動架構登錄 Pod 以套用新的身分識別。

    kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
    
  9. 一旦所有 Azure CLI 命令都成功完成,您就可以關閉安裝 Azure IoT 操作精靈。

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

驗證部署

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

az iot ops check

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

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

您可以執行下列命令來檢視所有可用的 Azure IoT Operations CLI 擴充功能版本:

az iot ops get-versions

後續步驟