將 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 訂用帳戶。
Azure 存取權限。 如需詳細資訊,請參閱 部署詳細數據 > 必要許可權。
開發資源:
在您的開發電腦上安裝 Azure CLI。 此案例需要 Azure CLI 2.64.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 必要條件。
在 Azure 入口網站中,搜尋並選取 [Azure IoT 操作]。
選取 建立。
在 [基本概念] 索引標籤中提供下列資訊:
參數 值 訂用帳戶 選取包含已啟用 Arc 之叢集的訂用帳戶。 資源群組 選取包含已啟用 Arc 之叢集的資源群組。 叢集名稱 選取您要作為 Azure IoT 操作部署目的地的叢集。 自訂位置名稱 選用:取代自訂位置的預設名稱。 選取 [下一步:設定]。
在 [設定] 索引標籤上,提供下列資訊:
參數 值 Azure IoT 操作名稱 選用:取代 Azure IoT 操作執行個體的預設名稱。 MQTT 代理程式設定 選擇性:編輯 MQTT 訊息代理程式的預設設定。 在 Azure 入口網站 可以設定基數和記憶體配置檔設定。 若要設定其他設定,包括磁碟支援的訊息緩衝區和進階 MQTT 用戶端選項,請參閱 適用於進階 MQTT 訊息代理程式設定的 Azure CLI 支援。 數據流配置檔組態 選擇性:編輯數據流的預設設定。 如需詳細資訊,請參閱 設定數據流配置檔。 選取 [ 下一步:相依性管理]。
在 [ 相依性管理 ] 索引卷標上,選取現有的架構登錄,或使用下列步驟來建立一個:
選取 [新建]
提供架構登錄名稱和架構登錄命名空間。
選取 [選取 Azure 儲存體 容器]。
從已啟用階層命名空間的帳戶清單中選擇記憶體帳戶,或選取 [ 建立 ] 以建立帳戶。
架構登錄需要已啟用階層命名空間和公用網路存取的 Azure 儲存體 帳戶。 建立新的記憶體帳戶時,請選擇一般用途 v2 儲存體帳戶類型,並將 [階層命名空間] 設定為 [已啟用]。
在記憶體帳戶中選取容器,或選取 [容器 ] 以建立容器。
選取 [ 套用 ] 以確認架構登錄組態。
在 [ 相依性管理 ] 索引標籤上 ,選取 [測試設定 ] 或 [ 安全設定 部署] 選項。 如果您不確定哪一個適合您的案例,請檢閱部署詳細>數據選擇您的功能中的指引。
根據您的選擇,請依照下列步驟執行下列其中一項:
- 使用測試設定進行部署,或
- 使用安全設定進行部署
使用測試設定進行部署
如果您選擇 [相依性管理] 索引標籤上的 [測試設定] 選項,請使用這些步驟。
選取 [下一步:自動化]。
一次一次,在終端機的 [自動化] 索引標籤上執行每個 Azure CLI 命令:
使用瀏覽器以互動方式登入 Azure CLI (即使之前已登入也一樣)。 如果您未以互動方式登入,您可能會收到錯誤,指出 您的裝置必須受到管理才能存取您的資源。
az login
安裝最新的 Azure IoT Operations CLI 擴充功能。
az upgrade az extension add --upgrade --name azure-iot-ops
建立 Azure IoT Operations 元件將使用的架構登錄。 複製並執行提供的 az iot ops 架構登錄 create 命令。
如果您選擇使用現有的架構登錄,此命令不會顯示在 [自動化] 索引標籤上。
準備 Azure IoT 作業部署的叢集。 複製並執行提供的 az iot ops init 命令。
提示
init
每個叢集只需要執行一次命令。 如果您要重複使用已部署 Azure IoT Operations 0.8.0 版的叢集,您可以略過此步驟。如果您遵循選擇性的必要條件來設定自己的證書頒發機構單位簽發者,請將
--user-trust
旗標新增至init
命令。此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
部署 Azure IoT 操作。 複製並執行提供的 az iot ops create 命令。
如果您已遵循選擇性必要條件來準備叢集以取得可觀察性,請將下列參數新增至
create
命令:參數 數值 Description --ops-config
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT>
提供您在-collector-values.yaml 檔案中設定的 OpenTelemetry (OTel) 收集器位址。
設定可觀察性中使用的範例值是 fullnameOverride=aio-ile-collector 和 grpc.endpoint=4317。--ops-config
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL>
提供您在-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>
此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
一旦所有 Azure CLI 命令都順利完成,您就可以關閉 [ 安裝 Azure IoT 作業 精靈]。
create
命令成功完成之後,您就會有在叢集上執行的 Azure IoT 作業實例。 此時,您的實例已針對大部分測試和評估案例進行設定。
如果您想要在未來的任何時間點為生產案例準備實例,請遵循在現有的 Azure IoT Operations 實例上啟用安全設定中的步驟。
使用安全設定進行部署
如果您選擇 [相依性管理] 索引標籤上的 [安全設定] 選項,請使用這些步驟。
在 [ 部署選項 ] 區段中,提供下列資訊:
參數 值 訂用帳戶 選取包含 Azure 金鑰保存庫的訂用帳戶。 Azure Key Vault 選取 Azure 金鑰保存庫,或選取 [ 新建]。
請確定您的金鑰保存庫具有 Azure 角色型存取控制 作為其許可權模型。 若要檢查此設定,請選取 [管理選取的保存庫]>[設定]>[存取設定]。
請務必授與用戶帳戶許可權,以使用Key Vault Secrets Officer
角色管理秘密。使用者指派的秘密受控識別 選取身分識別,或選取 [ 新建]。 使用者指派的 AIO 元件的受控識別 選取身分識別,或選取 [ 新建]。 請勿使用與您為秘密選取的受控識別相同的受控識別。 選取 [下一步:自動化]。
一次一次,在終端機的 [自動化] 索引標籤上執行每個 Azure CLI 命令:
使用瀏覽器以互動方式登入 Azure CLI (即使之前已登入也一樣)。 如果未以互動方式登入,您可能會在繼續進行下一個步驟來部署 Azure IoT 操作時收到錯誤,內容指出「您的裝置必須受到管理才能存取資源」。
az login
安裝最新的 Azure IoT Operations CLI 擴充功能。
az upgrade az extension add --upgrade --name azure-iot-ops
建立 Azure IoT Operations 元件將使用的架構登錄。 複製並執行提供的 az iot ops 架構登錄 create 命令。
如果您選擇使用現有的架構登錄,此命令不會顯示在 [自動化] 索引標籤上。
注意
此命令需要您具有角色指派寫入許可權,因為它會指派角色來授與記憶體帳戶的架構登錄存取權。 根據預設,此角色是內 建的記憶體 Blob 數據參與者 角色,或者您可以建立具有限制許可權的自定義角色來改為指派。 如需詳細資訊,請參閱 az iot ops schema registry create。
準備 Azure IoT 作業部署的叢集。 複製並執行提供的 az iot ops init 命令。
提示
init
每個叢集只需要執行一次命令。 如果您要重複使用已部署 Azure IoT Operations 0.8.0 版的叢集,您可以略過此步驟。此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
部署 Azure IoT 操作。 複製並執行提供的 az iot ops create 命令。
如果您已遵循選擇性必要條件來準備叢集以進行可觀察性,請將下列選擇性參數新增至
create
命令:選擇性參數 值 Description --ops-config
observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT>
提供您在-collector-values.yaml 檔案中設定的 OpenTelemetry (OTel) 收集器位址。
設定可觀察性中使用的範例值是 fullnameOverride=aio-ile-collector 和 grpc.endpoint=4317。--ops-config
observability.metrics.exportInternalSeconds=<CHECK_INTERVAL>
提供您在-collector-values.yaml 檔案中設定check_interval值。
設定可檢視性中使用的範例值是 check_interval=60。此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
為已部署的 Azure IoT 作業實例啟用秘密同步處理。 複製並執行提供的 az iot ops secretsync enable 命令。
此命令:
- 使用使用者指派的受控識別建立同盟身分識別認證。
- 將角色指派新增至使用者指派的受控識別,以存取 Azure 金鑰保存庫。
- 新增與 Azure IoT 作業實例相關聯的最小秘密提供者類別。
將使用者指派的受控識別指派給已部署的 Azure IoT 作業實例。 複製並執行提供的 az iot ops identity assign 命令。
此命令會使用所指示叢集的 OIDC 簽發者和 Azure IoT Operations 服務帳戶的 OIDC 簽發者,建立同盟身分識別認證。
一旦所有 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 操作部署的秘密。