Share via


快速入門:將 Azure IoT 作業預覽部署到已啟用 Arc 的 Kubernetes 叢集

重要

Azure IoT Operations Preview – 由 Azure Arc 啟用目前處於預覽狀態。 您不應該在生產環境中使用此預覽軟體。

請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

在本快速入門中,您會將一組IoT服務部署到已啟用 Azure Arc 的 Kubernetes 叢集,以便遠端管理您的裝置和工作負載。 Azure IoT 作業是包含 Azure IoT Orchestrator Preview 的數位作業套件。 本快速入門會引導您使用 Orchestrator 將這些服務部署至 Kubernetes 叢集。 在快速入門結束時,您會有一個叢集,您可以從雲端管理該叢集,以產生要用於下列快速入門中的範例數據。

本快速入門中部署的服務包括:

本系列中的下列快速入門以這個系列為基礎來定義範例資產、數據處理管線和視覺效果。 如果您想要部署 Azure IoT 作業以執行自己的工作負載,請參閱 準備已啟用 Azure Arc 的 Kubernetes 叢集 ,以及 將 Azure IoT Operations Preview 延伸模組部署至 Kubernetes 叢集

開始之前

本系列快速入門旨在協助您儘快開始使用 Azure IoT 作業,以便評估端對端案例。 在真正的開發或生產環境中,這些工作將由多個小組共同執行,有些工作可能需要更高的許可權。

為了獲得最佳的新用戶體驗,建議您使用 Azure 免費帳戶 ,讓您可以在這些快速入門中擁有資源擁有者許可權。 我們也提供使用 GitHub Codespaces 作為虛擬環境的步驟,您可以在其中快速開始部署資源並執行命令,而不需要在自己的電腦上安裝新的工具。

必要條件

在本快速入門中,您會建立 Kubernetes 叢集來接收 Azure IoT 作業部署。

如果您想要使用已部署 Azure IoT 作業的叢集重新執行本快速入門,請參閱清除資源以卸載 Azure IoT 作業中的步驟,再繼續進行。

開始之前,請先準備下列必要條件:

我們將解決什麼問題?

Azure IoT 作業是一套在 Kubernetes 叢集上執行的數據服務。 您希望這些叢集從雲端遠端管理,並能夠安全地與雲端資源和端點通訊。 在本快速入門中,我們會使用下列工作來解決這些疑慮:

  1. 建立 Kubernetes 叢集,並將其連線至 Azure Arc 以進行遠端管理。
  2. 建立 Azure 金鑰保存庫 來管理叢集的秘密。
  3. 使用秘密存放區和服務主體設定叢集,以與雲端資源通訊。
  4. 將 Azure IoT 作業部署至您的叢集。

將 Kubernetes 叢集連線至 Azure Arc

Azure IoT 作業應該處理任何符合雲端原生運算基礎 (NCF) 標準的 Kubernetes 叢集。 在本快速入門中,請使用 GitHub Codespaces 來裝載您的叢集。

在本節中,您會建立新的叢集,並將其聯機至 Azure Arc。如果您想要重複使用先前部署 Azure IoT 作業的叢集,請參閱清除資源以卸載 Azure IoT 作業中的步驟,再繼續進行。

使用 GitHub Codespaces 在 Kubernetes 叢集上嘗試 Azure IoT 作業,而不需要在本機電腦上安裝任何專案。 Azure-Samples /explore-iot-operations codespace 已預先設定:

重要

程式代碼空間很容易快速設定,稍後卸除,但不適合效能評估或規模測試。 僅使用 GitHub Codespaces 進行探索。

若要建立您的 Codespace 和叢集,請使用下列步驟:

  1. 在 GitHub Codespaces 中建立 Codespace。

    建立 explore-iot-operations codespace

  2. 為您的 Codespace 提供下列建議的秘密:

    參數
    SUBSCRIPTION_ID 您的 Azure 訂用帳戶識別碼。
    RESOURCE_GROUP 將建立叢集的新 Azure 資源群組名稱。
    LOCATION 靠近您的 Azure 區域。 公開預覽支援下列區域:eastus、eastus2、westus、westus2、westus3、westeurope 或 northeurope。

    提示

    您在此步驟中提供做為秘密的值會儲存在 GitHub 帳戶上,以用於此程式代碼空間和未來的程式代碼空間。 它們也會自動新增為 codespace 終端機中的環境變數,您可以在下一節的 CLI 命令中使用這些環境變數。

    此外,此程式代碼空間會自動建立 CLUSTER_NAME 環境變數,而環境變數會設定為codespace名稱。

  3. 選取 [ 建立新的程式代碼空間]。

  4. 一旦 Codespace 就緒,請選取左上方的功能表按鈕,然後選取 [在 VS Code Desktop 中開啟]。

    開啟 VS Code 桌面

  5. 如果出現提示,請安裝適用於 Visual Studio Code 的 GitHub Codespaces 延伸模組,然後登入 GitHub。

  6. 在 Visual Studio Code 中,選取 [檢視>終端機]。

    使用此終端機來執行所有命令行和 CLI 命令來管理您的叢集。

若要將叢集連線到 Azure Arc:

  1. 在您的 Codespace 終端機中,登入 Azure CLI:

    az login
    

    提示

    如果您在瀏覽器中使用 GitHub Codespace 環境,而不是 VS Code 桌面,則執行 az login 會傳回 localhost 錯誤。 若要修正錯誤,請:

    • 在 VS Code 桌面中開啟 codespace,然後傳回瀏覽器終端機,然後重新執行 az login
    • 或者,在瀏覽器上收到localhost錯誤之後,請從瀏覽器複製URL,然後在新的終端機索引標籤中執行 curl "<URL>" 。您應該會看到 JSON 回應,訊息為「您已登入 Microsoft Azure!」。
  2. 設定所有指令的 Azure 訂用帳戶內容:

    az account set -s $SUBSCRIPTION_ID
    
  3. 在您的訂用帳戶中註冊必要的資源提供者:

    注意

    此步驟只需要每個訂用帳戶執行一次。

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  4. 使用 az group create 命令在 Azure 訂用帳戶中建立資源群組,以儲存所有資源:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  5. 使用 az connectedk8s connect 命令來啟用 Arc-enable 您的 Kubernetes 叢集,並將其管理為 Azure 資源群組的一部分:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

    提示

    的值 $CLUSTER_NAME 會自動設定為程式代碼空間的名稱。 如果您想要使用不同的名稱,請取代環境變數。

  6. objectId取得 Azure Arc 服務所使用的 Microsoft Entra ID 應用程式,並將其儲存為環境變數。

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. 使用 az connectedk8s enable-features 命令,在您的叢集上啟用自定義位置支援。 此命令會使用 objectId Azure Arc 服務所使用的 Microsoft Entra ID 應用程式。

    az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
    

驗證叢集

使用適用於 Azure CLI 的 Azure IoT 作業擴充功能,使用叢集主機上的 verify-host 命令,確認您的叢集主機已正確設定以進行部署:

az iot ops verify-host

此協助程式命令會檢查 Azure Resource Manager 和 Microsoft Container Registry 端點的連線能力。

部署 Azure IoT 作業預覽

在本節中 ,您會使用 az iot ops init 命令來設定叢集,使其可以安全地與 Azure IoT Operations 元件和密鑰保存庫通訊,然後部署 Azure IoT 作業。

在 Codespaces 終端機中執行下列 CLI 命令。

  1. 建立金鑰保存庫。 在此案例中,我們將使用與您叢集相同的名稱和資源群組。 Keyvault 名稱的長度上限為 24 個字元,因此下列命令會在必要時截 CLUSTER_NAME斷環境變數。

    az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
    

    提示

    您可以使用現有的金鑰保存庫進行秘密,但請確認 許可權模型 已設定為 保存庫存取原則。 您可以在現有金鑰儲存庫的 [存取組態] 區段中的 [Azure 入口網站 中檢查此設定。 或使用 az keyvault show 命令來檢查是否enableRbacAuthorization為 false。

  2. 部署 Azure IoT 作業。

    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -o tsv --query id)
    

    如果您收到錯誤,指出 您的裝置必須受到管理才能存取您的資源,請再次執行 az login ,並確定您使用瀏覽器以互動方式登入。

    提示

    如果您先前已執行 az iot ops init ,它會自動為您在 Microsoft Entra ID 中建立應用程式註冊。 您可以重複使用該註冊,而不是每次建立新的註冊。 若要使用現有的應用程式註冊,請新增選擇性參數 --sp-app-id <APPLICATION_CLIENT_ID>

檢視叢集中的資源

部署進行中時,您可以監看要套用至叢集的資源。 您可以使用 kubectl 命令來觀察叢集上的變更,或者,因為叢集已啟用 Arc,您可以使用 Azure 入口網站。

若要檢視叢集上的 Pod,請執行下列命令:

kubectl get pods -n azure-iot-operations

部署可能需要幾分鐘的時間才能完成。 繼續執行 get pods 命令以重新整理檢視。

若要檢視 Azure 入口網站 上的叢集,請使用下列步驟:

  1. Azure 入口網站 中,流覽至包含叢集的資源群組。

  2. 從資源群組的概觀中,選取叢集的名稱。

  3. 在叢集上,從功能表的 [設定] 區段中選取 [擴充功能]。

    顯示已啟用 Arc 之叢集上已部署延伸模組的螢幕快照。

    您可以看到叢集正在執行 microsoft.iotoperations.x 類型的擴充功能,這是所有 Azure IoT 作業元件和協調流程服務的組名。 這些延伸模組具有唯一的後綴,可識別您的部署。 在上一個螢幕快照中,此後綴為 -z2ewy

    還有一 個名為 akvsecretsprovider 的延伸模組。 此延伸模組是您使用 az iot ops init 命令在叢集上設定並安裝的秘密提供者。 您可以在測試期間刪除並重新安裝 Azure IoT Operations 元件,但請將秘密提供者延伸模組保留在叢集上。

  4. 記下名為 mq-... 之擴充功能的完整名稱。您會在下列快速入門中使用這個名稱。

我們如何解決問題?

在本快速入門中,您已設定已啟用Arc的 Kubernetes 叢集,以便與 Azure IoT Operations 元件安全地通訊。 然後,您已將這些元件部署至叢集。 在此測試案例中,您有一個可能在本機計算機上執行的 Kubernetes 叢集。 不過,在生產案例中,您可以使用相同的步驟,將工作負載部署到多個站臺上的許多叢集。

清除資源

如果您繼續進行下一個快速入門,請保留所有資源。

如果您想要刪除 Azure IoT 作業部署,但打算在叢集上重新安裝,請務必將秘密提供者保留在叢集上。

  1. 在 Azure 入口網站 的資源群組中,選取您的叢集。

  2. 在叢集資源頁面上,選取 [ 擴充功能]。

  3. 選取 microsoft.iotoperations.xmicrosoft.deviceregistry.assets 類型的所有延伸模組,然後選取 [卸載]。 請勿卸載秘密提供者延伸模組。

    顯示要卸載之延伸模組的螢幕快照。

  4. 返回您的資源群組,然後選取自定義位置資源,然後選取 [ 刪除]。

如果您想要刪除您為此快速入門建立的所有資源,請刪除您已部署 Azure IoT 作業的 Kubernetes 叢集,並移除包含叢集的 Azure 資源群組。

後續步驟