共用方式為


建立及設定可執行 Azure IoT 作業的 AKS Edge Essentials 叢集

Azure Kubernetes Service (AKS) Edge Essentials 是 Azure IoT 作業支援的叢集平臺之一。 您可以使用 AKS Edge Essentials 來建立Microsoft受控 Kubernetes 叢集,並將 Azure IoT 作業部署為工作負載。 本文說明執行腳本的步驟,該腳本會建立 AKS Edge Essentials Kubernetes 叢集,其中包含 Azure IoT 作業的必要設定,然後將該叢集聯機至 Azure Arc。

注意

在單一計算機叢集上部署時,Azure IoT 作業支援 AKS Edge Essentials。 在多部計算機上部署叢集是實驗性功能。

執行腳本的必要條件

若要執行文稿,您需要下列必要條件:

  • 具有擁有者角色或參與者使用者存取系統管理員角色組合的 Azure 訂用帳戶。 您可以流覽至您的訂用帳戶,選取 Azure 入口網站 左側的 [訪問控制],然後選取 [檢視我的存取權],以檢查您的存取層級。 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶

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

  • 安裝適用於 Azure CLI 的 connectedk8s 擴充功能最新版本:

    az extension add --upgrade --name connectedk8s 
    
  • 硬體需求:確定您的計算機至少有 16 GB 可用的 RAM、4 個可用的 vCPU,以及保留給 Azure IoT 作業的 52 GB 可用磁碟空間。

建立已啟用Arc的叢集

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

  • 從此存放庫下載最新的 AKS Edge Essentials MSI。
  • 安裝 AKS Edge Essentials,並在 Windows 計算機上部署和建立單一機器 Kubernetes 叢集。
  • 聯機至 Azure 訂用帳戶、如果資源群組不存在,則會建立資源群組,並將叢集連線至 Arc,以建立已啟用 Arc 的 Kubernetes 叢集。
  • 在已啟用 Arc 的 Kubernetes 叢集上啟用自定義位置功能。
  • 在已啟用Arc的 Kubernetes 叢集上啟用工作負載身分識別同盟功能。
  • 部署本機路徑布建。
  • 在 MQTT 訊息代理程式的主 Windows 電腦上設定防火牆規則。
  • 在 Linux VM 上,做為 Kubernetes 控制平面節點:
    • 設定 Kubernetes 服務預設 IP 範圍 10.96.0.0/28 的埠 Proxy。
    • 設定 IP 資料表規則:
      • sudo iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9110 -j ACCEPT
      • sudo iptables -A INPUT -p tcp --dport (10124, 8420, 2379, 50051) -j ACCEPT

若要執行快速入門腳本,請執行下列步驟:

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

  2. objectId取得 Azure Arc 服務在您的租使用者中使用的 Microsoft Entra ID 應用程式。 執行下列命令,完全如寫入一樣,而不需要變更 GUID 值。

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. 執行下列命令:

    $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
    
  4. [選擇性] Azure Arc 閘道 (預覽) 可讓您只使用 7 個端點將基礎結構上線至 Azure Arc。 若要在 AKS Edge Essentials 上搭配 Azure IoT 作業使用 Azure Arc 閘道:

    • 遵循步驟 1 建立 Arc 閘道資源
    • 請注意步驟 2 中列出的 URL,將其新增至步驟 2 的
    • 請遵循 Arc 閘道檔中的步驟 3a 並儲存閘道標識碼。
    • AksEdgeQuickStartForAio.ps1中,尋找 $aideuserConfig 定義。 將 GatewayResourceId 的值設定為從上一個步驟儲存的閘道標識碼。
  5. 執行下列命令,並將佔位符替換為您的資訊:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>"
    
    預留位置
    SUBSCRIPTION_ID Azure 訂用帳戶的識別碼。 如果您不知道訂用帳戶識別碼,請參閱尋找您的 Azure 訂用帳戶
    TENANT_ID 您的 Microsoft Entra 租用戶識別碼。 如果您不知道租用戶識別碼,請參閱尋找您的 Microsoft Entra 租用戶
    RESOURCE_GROUP_NAME 現有資源群組的名稱,或要建立之新資源群組的名稱。 每個資源群組僅支援一個 Azure IoT 作業實例。
    LOCATION 靠近您的 Azure 區域。 如需 Azure IoT 作業支援的 Azure 區域清單,請參閱 支援的區域
    CLUSTER_NAME 要建立之新叢集的名稱。
    ARC_APP_OBJECT_ID 您在步驟 2 中擷取的物件標識碼值。

    當您執行 AksEdgeQuickStartForAio.ps1時,可以包含其他選擇性旗標。 選擇性旗標如下所示:

    選擇性旗標
    enableWorkloadIdentity (預覽) 默認為啟用。 雖然您可以在部署叢集之前選擇退出,但無法在叢集建立之後啟用該功能。 工作負載身分識別同盟可讓您在 Microsoft Entra ID 中設定使用者指派的受控識別或應用程式註冊,以信任來自外部識別提供者 (IdP) 的令牌,例如 Kubernetes。 若要設定工作負載身分識別同盟,請參閱本文
    proxy-https 提供 Proxy 值:https://<proxy-server-ip-address>:<port>
    proxy-http 提供 Proxy 值:http://<proxy-server-ip-address>:<port>
    proxy-skip-range 提供代理伺服器略過範圍:<excludedIP><excludedCIDR>。 如果提供 http(s)_proxy,則 no_proxy 也應該更新為 localhost,127.0.0.0/8,192.168.0.0/16,172.17.0.0/16,10.42.0.0/16,10.43.0.0/16,10.96.0.0/12,10.244.0.0/16,.svc,169.254.169.254

    您可以新增這些旗標,如下列範例所示:

    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>" -CustomLocationOid "<ARC_APP_OBJECT_ID>" --enableWorkloadIdentity:false
    

    重要

    預覽功能會以自助式、選擇方式提供。 預覽版本會「依現況」和「可用」提供,並且不受服務等級協定和有限保固的保障。 AKS Edge Essentials 的預覽版僅在盡最大努力的情況下提供客戶支援。

    如果在部署期間發生問題,例如,如果您的機器在此程式中重新啟動,請再次執行指令集。

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

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    在命令的 Get-AksEdgeDeploymentInfo 輸出中,您應該會看到叢集的 Arc 狀態為 [已連線]。

驗證叢集

若要確認 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

下一步