準備已啟用 Azure Arc 的 Kubernetes 叢集

重要

已啟用 Azure Arc 的 Azure IoT 操作預覽版目前為預覽狀態。 請勿在生產環境使用此預覽版軟體。

當正式推出的版本可使用時,您必須部署新的 Azure IoT 操作安裝。 您將無法升級預覽安裝。

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

已啟用 Azure Arc 的 Kubernetes 叢集是部署 Azure IoT 操作預覽版的必要條件。 本文說明如何在您將 Azure IoT Operations Preview 部署至已啟用 Arc 的 Kubernetes 叢集之前準備叢集。 本文包含Ubuntu和 Windows 的指引。

提示

本文中的步驟會準備叢集以進行安全設定部署,這是較長但已準備好生產環境的程式。 如果您想要快速部署 Azure IoT 作業,並只執行具有測試設定的範例工作負載,請參閱 快速入門:改為在 Github Codespaces 中使用 K3 執行 Azure IoT Operations Preview。

如需測試設定和安全設定的詳細資訊,請參閱 部署詳細數據 > 選擇您的功能

必要條件

Azure IoT 作業應該在任何已啟用 Arc 的 Kubernetes 叢集上運作,以符合 已啟用 Azure Arc 的 Kubernetes 系統需求。 Azure IoT 作業目前不支援Arm64架構。

Microsoft支援 Azure Kubernetes Service (AKS) Edge Essentials,以用於在 Windows 上部署,而適用於 Ubuntu 上的部署 K3。 如需已測試及驗證的特定硬體和軟體組合清單,請參閱 已驗證的環境

如果您想要將 Azure IoT 作業部署到多節點解決方案,請在 Ubuntu 上使用 K3。

若要準備已啟用 Azure Arc 的 Kubernetes 叢集,您需要:

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶

  • 安裝在開發電腦上的 Azure CLI 2.64.0 版或更新版本。 使用 az --version 檢查您的版本,並視需要更新 az upgrade。 如需詳細資訊,請參閱如何安裝 Azure CLI

  • 適用於 Azure CLI 的 Azure IoT 作業擴充功能最新版本。 使用下列命令將延伸模組新增或更新至最新版本:

    az extension add --upgrade --name azure-iot-ops
    
  • 符合系統需求的硬體:

  • 如果您要將 Azure IoT 作業部署到已啟用容錯的多節點叢集,請檢閱準備 Linux for Edge 磁碟區中的硬體和記憶體需求。

建立叢集

本節提供在Linux和 Windows 上已驗證的環境中建立叢集的步驟。

Azure Kubernetes Service 邊緣程式集是 Azure Kubernetes Service (AKS) 的內部部署 Kubernetes,可自動執行大規模的容器化應用程式。 AKS Edge Essentials 包含Microsoft支援的 Kubernetes 平臺,其中包含輕量型 Kubernetes 散發套件,其使用量小,且安裝體驗簡單,可支援計算機類別或「輕量」邊緣硬體。

AksEdgeQuickStartForAio.ps1 腳本會自動建立和聯機叢集的程式,而且是在 AKS Edge Essentials 上部署 Azure IoT 作業的建議路徑。

  1. 開啟提升權限的 PowerShell 視窗,並將目錄變更為工作資料夾。

  2. objectId取得 Azure Arc 服務在您的租使用者中使用的 Microsoft Entra ID 應用程式。

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. 執行下列命令,以您的資訊取代預留位置值:

    預留位置
    SUBSCRIPTION_ID Azure 訂用帳戶的識別碼。 如果您不知道訂用帳戶識別碼,請參閱尋找您的 Azure 訂用帳戶
    TENANT_ID 您的 Microsoft Entra 租用戶識別碼。 如果您不知道租用戶識別碼,請參閱尋找您的 Microsoft Entra 租用戶
    RESOURCE_GROUP_NAME 現有資源群組的名稱,或要建立之新資源群組的名稱。
    LOCATION 靠近您的 Azure 區域。 如需目前支援的 Azure 區域清單,請參閱支援的區域
    CLUSTER_NAME 要建立之新叢集的名稱。
    ARC_APP_OBJECT_ID 您在上一個步驟中擷取的物件標識碼值。
    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    

    如果部署期間發生任何問題 (包括您的機器在此過程中重新開機的話),請重新執行整組命令。

  4. 執行下列命令來檢查部署是否成功:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Get-AksEdgeDeploymentInfo 命令的輸出中,您應該會看到叢集的 Arc 狀態 Connected

啟用 Arc 的叢集

將您的叢集連線到 Azure Arc,以便能從遠端進行管理。

您在上一節執行的 AksEdgeQuickStartForAio.ps1 指令碼會處理叢集的連線步驟。 您不需要採取任何額外的步驟就能啟用 Arc。

驗證叢集

若要確認叢集已準備好進行 Azure IoT 操作部署,您可以在適用於 Azure CLI 的 Azure IoT 操作延伸功能中使用 verify-host 協助程式命令。 在叢集主機上執行時,此協助程式命令會檢查 Azure Resource Manager 和 Microsoft Container Registry 端點的連線能力。

az iot ops verify-host

若要確認 Kubernetes 叢集已啟用 Azure Arc,請執行下列命令:

kubectl get deployments,pods -n azure-arc

輸出看起來會像下列範例這樣:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

下一步

現在您已經有了已啟用 Azure Arc 的 Kubernetes 叢集,接著可以部署 Azure IoT 操作