Condividi tramite


Creare e configurare un cluster Azure Kubernetes Edge Essentials in grado di eseguire operazioni IoT di Azure

Servizio Azure Kubernetes (AKS) Edge Essentials è una delle piattaforme cluster supportate per Operazioni di Azure IoT. È possibile usare AKS Edge Essentials per creare un cluster Kubernetes gestito da Microsoft e distribuire operazioni IoT di Azure come carico di lavoro. Questo articolo descrive i passaggi per eseguire uno script che crea un cluster Kubernetes Edge Essentials del servizio Azure Kubernetes con le configurazioni necessarie per le operazioni IoT di Azure e quindi connette il cluster ad Azure Arc.

Nota

Le operazioni IoT di Azure supportano Azure Kubernetes Edge Essentials quando vengono distribuiti in cluster a computer singolo. La distribuzione di cluster in più computer è una funzionalità sperimentale.

Prerequisiti per l'esecuzione dello script

Per eseguire lo script, sono necessari i prerequisiti seguenti:

  • Una sottoscrizione di Azure con il ruolo Proprietario o una combinazione di ruoli Collaboratore e Amministratore accesso utenti. È possibile controllare il livello di accesso passando alla sottoscrizione, selezionando Controllo di accesso (IAM) sul lato sinistro del portale di Azure e quindi selezionando Visualizza l'accesso. Se non si dispone di sottoscrizione di Azure, crearne una gratuitamente prima di iniziare.

  • Interfaccia della riga di comando di Azure versione 2.64.0 o successiva installata nel computer di sviluppo. Usare az --version per controllare la versione e az upgrade per aggiornare, se necessario. Per altre informazioni, vedere Installare l'interfaccia della riga di comando di Azure.

  • Installare la versione più recente delle estensioni connectedk8s per l'interfaccia della riga di comando di Azure:

    az extension add --upgrade --name connectedk8s 
    
  • Requisiti hardware: assicurarsi che il computer abbia almeno 16 GB di RAM disponibile, 4 vCPU disponibili e 52 GB di spazio libero su disco riservato per le operazioni IoT di Azure.

Creare un cluster abilitato per Arc

Lo script AksEdgeQuickStartForAio.ps1 automatizza il processo di creazione e connessione di un cluster ed è il percorso consigliato per la distribuzione di operazioni IoT di Azure in AKS Edge Essentials. Questo script esegue le operazioni seguenti:

  • Scarica l'identità del servizio gestito di Azure Kubernetes Edge Essentials più recente da questo repository.
  • Installa Il servizio Azure Kubernetes Edge Essentials e distribuisce e crea un singolo cluster Kubernetes nel computer Windows.
  • Si connette alla sottoscrizione di Azure, crea un gruppo di risorse se non esiste già e connette il cluster ad Arc per creare un cluster Kubernetes abilitato per Arc.
  • Abilita la funzionalità di posizione personalizzata nel cluster Kubernetes abilitato per Arc.
  • Abilita la funzionalità di federazione dell'identità del carico di lavoro nel cluster Kubernetes abilitato per Arc.
  • Distribuisce il provisioning del percorso locale.
  • Configura le regole del firewall nel computer Windows host per il broker MQTT.
  • Nella macchina virtuale Linux, che funge da nodo del piano di controllo Kubernetes:
    • Configura il proxy di porta per l'intervallo IP predefinito del servizio Kubernetes 10.96.0.0/28.
    • Configura le regole della tabella 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

Per eseguire lo script di avvio rapido, seguire questa procedura:

  1. Aprire una finestra di PowerShell con privilegi elevati e modificare la directory in una cartella di lavoro.

  2. Ottenere l'oggetto objectId dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc nel tenant. Eseguire il comando seguente esattamente come scritto, senza modificare il valore GUID.

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    
  3. Eseguire i comandi seguenti, sostituendo i valori segnaposto con le informazioni:

    $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>"
    
    Segnaposto Valore
    SUBSCRIPTION_ID ID della sottoscrizione di Azure. Se non si conosce l'ID sottoscrizione, vedere Trovare la sottoscrizione di Azure.
    TENANT_ID ID del tenant di Microsoft Entra. Se non si conosce l'ID tenant, vedere Trovare il tenant di Microsoft Entra.
    RESOURCE_GROUP_NAME Nome di un gruppo di risorse esistente o di un nome per la creazione di un nuovo gruppo di risorse. Per ogni gruppo di risorse è supportata una sola istanza di Operazioni IoT di Azure.
    LOCATION Un'area di Azure nelle vicinanze. Per l'elenco delle aree di Azure supportate per le operazioni IoT di Azure, vedere Aree supportate.
    CLUSTER_NAME Nome del nuovo cluster da creare.
    ARC_APP_OBJECT_ID Valore dell'ID oggetto recuperato nel passaggio 2.

    Se si verificano problemi durante la distribuzione, ad esempio se il computer viene riavviato durante questo processo, eseguire di nuovo il set di comandi.

  4. Eseguire i comandi seguenti per verificare che la distribuzione sia riuscita:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Nell'output del Get-AksEdgeDeploymentInfo comando si noterà che lo stato arc del cluster è Connesso.

Verificare il cluster

Per verificare che il cluster Kubernetes sia abilitato per Azure Arc, eseguire il comando seguente:

kubectl get deployments,pods -n azure-arc

L'output è simile al seguente esempio:

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

Passaggi successivi