快速入門:使用 K3 在 GitHub Codespaces 中執行 Azure IoT 操作預覽
重要
已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。
當正式推出的版本可使用時,您必須部署新的 Azure IoT 操作安裝。 您將無法升級預覽安裝。
請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
在本快速入門中,您將一組 IoT 服務部署到已啟用 Azure Arc 的 Kubernetes 叢集,以便從遠端管理您的裝置和工作負載。 Azure IoT 操作是一套數位作業服務。 本快速入門會引導您使用 Orchestrator 將這些服務部署至 Kubernetes 叢集。 在快速入門結束時,您會有一個叢集,您可以從雲端進行管理,產生要用於下列快速入門中的範例資料。
此端對端系列中的其餘快速入門是以此系列為基礎來定義範例資產、數據處理管線和視覺效果。
如果您想要將 Azure IoT 作業部署到本機叢集,例如 Ubuntu 上的 Azure Kubernetes Service Edge Essentials 或 K3s,請參閱 部署詳細數據。
開始之前
本系列快速入門旨在協助您儘快開始使用 Azure IoT 操作,以便評估端對端案例。 在真正的開發或生產環境中,多個小組共同執行這些工作,有些工作可能需要更高的許可權。
為了獲得最佳的新使用者體驗,建議您使用 Azure 免費帳戶,讓您可以在這些快速入門中擁有資源擁有者權限。 我們也提供使用 GitHub Codespaces 作為虛擬環境的步驟,您可以在其中快速開始部署資源並執行命令,而不需要在自己的電腦上安裝新的工具。
必要條件
在本快速入門中,您會建立 Kubernetes 叢集來接收 Azure IoT 操作部署。
如果您想要重複使用已部署 Azure IoT 作業的叢集,請參閱清除資源以卸載 Azure IoT 作業中的步驟,再繼續進行。
開始之前,請準備下列先決條件:
Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶。
GitHub 帳戶。
開發機器上已安裝 Visual Studio Code。 如需詳細資訊,請參閱下載 Visual Studio Code。
Microsoft/Authorization/roleAssignments/write 許可權在資源群組層級。
我們會解決什麼問題?
Azure IoT 操作是一套在 Kubernetes 叢集上執行的資料服務。 您希望這些叢集從雲端遠端管理,並能夠安全地與雲端資源和端點通訊。 在本快速入門中,我們會使用下列工作來解決這些疑慮:
- 建立 Kubernetes 叢集,並連線至 Azure Arc 以進行遠端管理。
- 建立架構登錄。
- 將 Azure IoT 操作部署至您的叢集。
將 Kubernetes 叢集連線至 Azure Arc
Azure IoT 操作應該處理任何符合雲端原生運算基礎 (NCF) 標準的 Kubernetes 叢集。 為了快速方便起見,本快速入門會使用 GitHub Codespaces 來裝載您的叢集。
重要
程式碼空間很容易快速設定,稍後卸除,但不適合效能評估或規模測試。 僅使用 GitHub Codespaces 進行探索。 若要瞭解如何將 Azure IoT 操作部署到生產叢集,例如 AKS 邊緣程式集,請參閱準備已啟用 Azure Arc 的 Kubernetes 叢集。
在本節中,您會建立新的叢集,並將其連線至 Azure Arc。如果您想要重複使用之前部署 Azure IoT 操作的叢集,請參閱清除資源中的步驟,以在繼續之前解除安裝 Azure IoT 操作。
使用 GitHub Codespaces 在 Kubernetes 叢集上嘗試 Azure IoT 操作,而不需要在本機電腦上安裝任何項目。 Azure-Samples/explore-iot-operations Codespace 已預先設定了以下項目:
若要建立您的 Codespace 和叢集,請使用下列步驟:
在 GitHub Codespaces 中建立一個 Codespace。
為您的 Codespace 提供下列建議的祕密:
參數 值 SUBSCRIPTION_ID 您的 Azure 訂用帳戶識別碼。 RESOURCE_GROUP 將建立叢集的新 Azure 資源群組名稱。 LOCATION 靠近您的 Azure 區域。 如需目前支援的區域清單,請參閱支援的區域。 提示
您在此步驟中提供作為祕密的值會儲存在 GitHub 帳戶上,以供此 Codespace 和未來的 Codespace 使用。 它們會在 codespace 終端機中新增為環境變數,您可以在下一節的 CLI 命令中使用這些環境變數。
此外,此 Codespace 會建立環境變數
CLUSTER_NAME
,此環境變數會使用 codespace 名稱進行設定。選取 [建立新的 codespace]。
一旦 Codespace 就緒,請選取左上方的功能表按鈕,然後選取 [在 VS Code Desktop 中開啟]。
如果出現提示,請安裝適用於 Visual Studio Code 的 GitHub Codespaces 延伸模組,然後登入 GitHub。
在 Visual Studio Code 中,選取 [檢視]>[終端機]。
使用此終端機來執行管理叢集的所有 CLI 命令。
將叢集連線至 Azure Arc:
在您的 Codespace 終端機中,登入 Azure CLI:
az login
提示
如果您在瀏覽器 (而非 VS Code Desktop) 中使用 GitHub Codespace 環境,則執行
az login
會傳回 localhost 錯誤。 若要修正錯誤,請:- 在 VS Code Desktop 中開啟 Codespace,然後回到瀏覽器終端機中,並重新執行
az login
。 - 或是,在您於瀏覽器上收到 localhost 錯誤後,從瀏覽器複製 URL,並在新的終端機索引標籤中執行
curl "<URL>"
。您應該會看到 JSON 回應,訊息為「您已登入 Microsoft Azure!」。
- 在 VS Code Desktop 中開啟 Codespace,然後回到瀏覽器終端機中,並重新執行
登入之後,Azure CLI 會顯示您的所有訂用帳戶,並以星號
*
表示您的預設訂用帳戶。 若要繼續進行預設訂用帳戶,請選擇取Enter
。 否則,請輸入您想要使用的 Azure 訂用帳戶數目。在您的訂用帳戶中註冊必要的資源提供者:
注意
每個訂用帳戶只需要執行此步驟一次。 若要註冊資源提供者,您需要
/register/action
作業的執行權限,訂用帳戶參與者和擁有者角色中都包含該權限。 如需詳細資訊,請參閱 Azure 資源提供者和類型。az provider register -n "Microsoft.ExtendedLocation" az provider register -n "Microsoft.Kubernetes" az provider register -n "Microsoft.KubernetesConfiguration" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry"
使用 az group create 命令,在 Azure 訂用帳戶中建立資源群組來儲存所有資源:
az group create --location $LOCATION --resource-group $RESOURCE_GROUP
使用 az connectedk8s connect 命令為您的 Kubernetes 叢集啟用 Arc,並在 Azure 資源群組中管理此叢集:
az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
提示
$CLUSTER_NAME
的值會自動設定為 Codespace 的名稱。 如果您想要使用不同的名稱,請取代環境變數。objectId
取得租使用者中 Azure Arc 服務所使用的 Microsoft Entra ID 應用程式,並將其儲存為環境變數。export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
使用 az connectedk8s enable-features 命令,在您的叢集上啟用自訂位置支援。 此命令會使用 Azure Arc 服務所使用的 Microsoft Entra ID 應用程式
objectId
。az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
驗證叢集
使用適用於 Azure CLI 的 Azure IoT Operations 延伸模組,使用叢集主機上的 verify-host 命令,確認您的叢集主機已正確設定以進行部署:
az iot ops verify-host
此協助程式命令會檢查 Azure Resource Manager 和 Microsoft Container Registry 端點的連線能力。
建立記憶體帳戶和架構登錄
Azure IoT 作業需要叢集上的架構登錄。 架構登錄需要 Azure 記憶體帳戶,才能同步處理雲端與邊緣之間的架構資訊。
在本節中建立架構登錄的命令需要 資源群組層級Microsoft/Authorization/roleAssignments/write 許可權。
在 Codespaces 終端機中執行下列 CLI 命令。
為您在本節中建立的資源設定環境變數。
預留位置 值 <STORAGE_ACCOUNT_NAME> 儲存體帳戶的名稱。 儲存體帳戶名稱長度必須介於 3 到 24 個字元之間,且只包含數位和小寫字母。 <SCHEMA_REGISTRY_NAME> 架構登錄的名稱。 <SCHEMA_REGISTRY_NAMESPACE> 架構登錄命名空間的名稱。 命名空間會唯一識別租使用者內的架構登錄。 export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
建立已啟用階層命名空間的記憶體帳戶。
az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
建立可連線到記憶體帳戶的架構登錄。 如果記憶體帳戶中還沒有架構,此命令也會建立名為 架構的 Blob 容器。
az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
部署 Azure IoT 操作預覽版
在本節中,您會使用 Azure IoT Operations 元件的相依性來設定叢集,然後部署 Azure IoT 作業。
在 Codespaces 終端機中執行下列 CLI 命令。
初始化 Azure IoT 作業的叢集。
提示
init
每個叢集只需要執行一次命令。 如果您要重複使用已部署 Azure IoT 作業 0.7.0 版的叢集,您可以略過此步驟。az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id)
此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
部署 Azure IoT 操作。 此命令需要幾分鐘才能完成:
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance
此命令可能需要幾分鐘的時間才能完成。 您可以在終端機中監看部署進度中的進度。
如果您收到錯誤,指出您的裝置必須經過管理才能存取您的資源,再次執行
az login
並確定您已使用瀏覽器以互動方式登入。
檢視叢集中的資源
部署進行中時,CLI 進度介面會顯示您位於的部署階段。 部署完成後,您可以使用 kubectl 命令來觀察叢集上的變更,或因為叢集已啟用 Arc,您可以使用 Azure 入口網站。
若要檢視叢集上的 Pod,請執行下列命令:
kubectl get pods -n azure-iot-operations
若要在 Azure 入口網站上檢視資源,請使用下列步驟:
在 Azure 入口網站中,移至包含 Azure IoT 操作執行個體的資源群組,或搜尋並選取 [Azure IoT 操作]。
選取 Azure IoT 操作執行個體的名稱。
在實例的 [ 概觀 ] 頁面上,[ Arc 延伸模組 ] 索引標籤會顯示已部署至叢集的資源。
我們如何解決問題?
在本快速入門中,您設定已啟用 Arc 的 Kubernetes 叢集,以便與 Azure IoT 操作元件安全地通訊。 然後,您將這些元件部署至叢集。 在此測試情節中,您有一個可能在本機電腦上執行的 Kubernetes 叢集。 不過,在生產情節中,您可以使用相同的步驟,將工作負載部署到多個網站上的許多叢集。
清除資源
如果您繼續進行下一個快速入門,請保留所有資源。
如果您想要移除 Azure IoT 作業部署,但保留叢集,請使用 az iot ops delete 命令:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
如果您想要刪除您為此快速入門建立的所有資源,請刪除您已部署 Azure IoT 作業的 Kubernetes 叢集,然後移除包含叢集的 Azure 資源群組。
如果您在這些快速入門中使用 Codespaces,請從 GitHub 刪除您的 Codespace。