Share via


Guida introduttiva: Distribuire Azure IoT Operations Preview in un cluster Kubernetes abilitato per Arc

Importante

Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.

Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

In questa guida introduttiva si distribuisce una suite di servizi IoT in un cluster Kubernetes abilitato per Azure Arc in modo da poter gestire in remoto i dispositivi e i carichi di lavoro. Azure IoT Operations è una suite di servizi digitali che include l'anteprima di Azure IoT Orchestrator. Questa guida introduttiva illustra l'uso di Orchestrator per distribuire questi servizi in un cluster Kubernetes. Alla fine dell'avvio rapido è disponibile un cluster che è possibile gestire dal cloud che genera dati di esempio da usare nelle guide introduttive seguenti.

I servizi distribuiti in questa guida introduttiva includono:

Le guide introduttive seguenti di questa serie si basano su questa per definire asset di esempio, pipeline di elaborazione dati e visualizzazioni. Per distribuire le operazioni IoT di Azure per eseguire carichi di lavoro personalizzati, vedere Preparare il cluster Kubernetes abilitato per Azure Arc e distribuire le estensioni di Anteprima di Azure IoT Operations in un cluster Kubernetes.

Operazioni preliminari

Questa serie di guide introduttive è progettata per iniziare a usare le operazioni di Azure IoT il più rapidamente possibile, in modo da poter valutare uno scenario end-to-end. In un vero ambiente di sviluppo o produzione, queste attività verrebbero eseguite da più team che lavorano insieme e alcune attività potrebbero richiedere autorizzazioni elevate.

Per una nuova esperienza utente ottimale, è consigliabile usare un account gratuito di Azure in modo da disporre delle autorizzazioni di proprietario sulle risorse in queste guide introduttive. Vengono inoltre forniti i passaggi per usare GitHub Codespaces come ambiente virtuale in cui è possibile iniziare rapidamente a distribuire le risorse ed eseguire comandi senza installare nuovi strumenti nei propri computer.

Prerequisiti

Per questa guida introduttiva si crea un cluster Kubernetes per ricevere la distribuzione di Operazioni IoT di Azure.

Se si vuole rieseguire questa guida introduttiva con un cluster in cui sono già state distribuite le operazioni IoT di Azure, vedere la procedura descritta in Pulire le risorse per disinstallare le operazioni di Azure IoT prima di continuare.

Prima di iniziare, preparare i prerequisiti seguenti:

Quale problema risolveremo?

Operazioni IoT di Azure è una suite di servizi dati eseguiti nei cluster Kubernetes. Si vuole che questi cluster vengano gestiti in remoto dal cloud e in grado di comunicare in modo sicuro con le risorse e gli endpoint cloud. Questi problemi vengono affrontati con le attività seguenti in questa guida introduttiva:

  1. Creare un cluster Kubernetes e connetterlo ad Azure Arc per la gestione remota.
  2. Creare un insieme di credenziali delle chiavi di Azure per gestire i segreti per il cluster.
  3. Configurare il cluster con un archivio segreti e un'entità servizio per comunicare con le risorse cloud.
  4. Distribuire le operazioni di Azure IoT nel cluster.

Connettere un cluster Kubernetes ad Azure Arc

Le operazioni di Azure IoT devono funzionare in qualsiasi cluster Kubernetes conforme agli standard CLOUD Native Computing Foundation (CNF). Per questa guida introduttiva, usare GitHub Codespaces per ospitare il cluster.

In questa sezione viene creato un nuovo cluster e connesso ad Azure Arc. Per riutilizzare un cluster in cui sono state distribuite le operazioni di Azure IoT in prima, fare riferimento alla procedura descritta in Pulire le risorse per disinstallare le operazioni di Azure IoT prima di continuare.

Usare GitHub Codespaces per provare le operazioni IoT di Azure in un cluster Kubernetes senza installare alcun elemento nel computer locale. Lo spazio di codice Azure-Samples/explore-iot-operations è preconfigurato con:

Importante

Gli spazi di codice sono facili da configurare rapidamente e rimuovere in un secondo momento, ma non sono adatti per la valutazione delle prestazioni o i test di scalabilità. Usare GitHub Codespaces solo per l'esplorazione.

Per creare lo spazio di codice e il cluster, seguire questa procedura:

  1. Creare uno spazio di codice in GitHub Codespaces.

    Creare uno spazio di codice explore-iot-operations

  2. Specificare i segreti consigliati seguenti per lo spazio di codice:

    Parametro Valore
    SUBSCRIPTION_ID L'ID sottoscrizione di Azure.
    RESOURCE_GROUP Nome di un nuovo gruppo di risorse di Azure in cui verrà creato il cluster.
    LOCATION Un'area di Azure vicina all'utente. Le aree seguenti sono supportate in anteprima pubblica: eastus, eastus2, westus2, westus2, westus3, westeurope o northeurope.

    Suggerimento

    I valori specificati come segreti in questo passaggio vengono salvati nell'account GitHub da usare in questo e in futuro spazi di codice. Vengono aggiunte automaticamente anche come variabili di ambiente nel terminale codespace ed è possibile usare tali variabili di ambiente nei comandi dell'interfaccia della riga di comando nella sezione successiva.

    Inoltre, questo spazio di codice crea automaticamente una CLUSTER_NAME variabile di ambiente impostata con il nome dello spazio di codice.

  3. Selezionare Crea nuovo spazio di codice.

  4. Quando lo spazio di codice è pronto, selezionare il pulsante di menu in alto a sinistra, quindi selezionare Apri in VS Code Desktop.

    Aprire VS Code desktop

  5. Se richiesto, installare l'estensione GitHub Codespaces per Visual Studio Code e accedere a GitHub.

  6. In Visual Studio Code selezionare Visualizza>terminale.

    Usare questo terminale per eseguire tutti i comandi della riga di comando e dell'interfaccia della riga di comando per la gestione del cluster.

Per connettere il cluster ad Azure Arc:

  1. Nel terminale codespace accedere all'interfaccia della riga di comando di Azure:

    az login
    

    Suggerimento

    Se si usa l'ambiente codespace GitHub in un browser anziché in un desktop di VS Code, l'esecuzione az login restituisce un errore localhost. Per correggere l'errore, eseguire una delle operazioni seguenti:

    • Aprire lo spazio di codice nel desktop di VS Code, quindi tornare al terminale del browser ed eseguire az logindi nuovo .
    • In alternativa, dopo aver visualizzato l'errore localhost nel browser, copiare l'URL dal browser ed eseguire curl "<URL>" in una nuova scheda del terminale. Verrà visualizzata una risposta JSON con il messaggio "È stato eseguito l'accesso a Microsoft Azure!".
  2. Impostare il contesto della sottoscrizione di Azure per tutti i comandi:

    az account set -s $SUBSCRIPTION_ID
    
  3. Registrare i provider di risorse necessari nella sottoscrizione:

    Nota

    Questo passaggio deve essere eseguito una sola volta per ogni sottoscrizione.

    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. Usare il comando az group create per creare un gruppo di risorse nella sottoscrizione di Azure per archiviare tutte le risorse:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  5. Usare il comando az connectedk8s connect per Arc-enable il cluster Kubernetes e gestirlo come parte del gruppo di risorse di Azure:

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

    Suggerimento

    Il valore di $CLUSTER_NAME viene impostato automaticamente sul nome dello spazio di codice. Sostituire la variabile di ambiente se si vuole usare un nome diverso.

  6. Ottenere l'oggetto objectId dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc e salvarla come variabile di ambiente.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. Usare il comando az connectedk8s enable-features per abilitare il supporto della posizione personalizzata nel cluster. Questo comando usa l'oggetto objectId dell'applicazione Microsoft Entra ID usata dal servizio Azure Arc.

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

Verificare il cluster

Usare l'estensione Azure IoT Operations per l'interfaccia della riga di comando di Azure per verificare che l'host del cluster sia configurato correttamente per la distribuzione usando il comando verify-host nell'host del cluster:

az iot ops verify-host

Questo comando helper controlla la connettività agli endpoint di Azure Resource Manager e Registro Azure Container.

Distribuire l'anteprima di Azure IoT Operations

In questa sezione si usa il comando az iot ops init per configurare il cluster in modo che possa comunicare in modo sicuro con i componenti di Operazioni IoT di Azure e l'insieme di credenziali delle chiavi, quindi distribuire operazioni IoT di Azure.

Eseguire i comandi dell'interfaccia della riga di comando seguenti nel terminale Codespaces.

  1. Creare un insieme di credenziali delle chiavi. Per questo scenario si useranno lo stesso nome e il gruppo di risorse del cluster. I nomi dell'insieme di credenziali delle chiavi hanno una lunghezza massima di 24 caratteri, quindi il comando seguente tronca la CLUSTER_NAMEvariabile di ambiente, se necessario.

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

    Suggerimento

    È possibile usare un insieme di credenziali delle chiavi esistente per i segreti, ma verificare che il modello autorizzazione sia impostato su Criteri di accesso dell'insieme di credenziali. È possibile controllare questa impostazione nella portale di Azure nella sezione Configurazione di Accesso di un insieme di credenziali delle chiavi esistente. In alternativa, usare il comando az keyvault show per verificare che enableRbacAuthorization sia false.

  2. Distribuire le operazioni di 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)
    

    Se viene visualizzato un errore che indica che il dispositivo deve essere gestito per accedere alla risorsa, eseguire az login di nuovo e assicurarsi di accedere in modo interattivo con un browser.

    Suggerimento

    Se è già stato eseguito az iot ops init in precedenza, viene creata automaticamente una registrazione dell'app nell'ID Microsoft Entra. È possibile riutilizzare la registrazione anziché crearne una nuova ogni volta. Per usare una registrazione dell'app esistente, aggiungere il parametro --sp-app-id <APPLICATION_CLIENT_ID>facoltativo .

Visualizzare le risorse nel cluster

Mentre la distribuzione è in corso, è possibile controllare le risorse applicate al cluster. È possibile usare i comandi kubectl per osservare le modifiche nel cluster o, poiché il cluster è abilitato per Arc, è possibile usare il portale di Azure.

Per visualizzare i pod nel cluster, eseguire il comando seguente:

kubectl get pods -n azure-iot-operations

Il completamento della distribuzione può richiedere alcuni minuti. Continuare a eseguire il get pods comando per aggiornare la visualizzazione.

Per visualizzare il cluster nel portale di Azure, seguire questa procedura:

  1. Nella portale di Azure passare al gruppo di risorse che contiene il cluster.

  2. Nella panoramica del gruppo di risorse selezionare il nome del cluster.

  3. Nel cluster selezionare Estensioni nella sezione Impostazioni del menu.

    Screenshot che mostra le estensioni distribuite nel cluster abilitato per Arc.

    È possibile notare che il cluster esegue estensioni del tipo microsoft.iotoperations.x, ovvero il nome del gruppo per tutti i componenti di Operazioni IoT di Azure e il servizio di orchestrazione. Queste estensioni hanno un suffisso univoco che identifica la distribuzione. Nello screenshot precedente questo suffisso è -z2ewy.

    Esiste anche un'estensione denominata akvsecretsprovider. Questa estensione è il provider di segreti configurato e installato nel cluster con il az iot ops init comando . È possibile eliminare e reinstallare i componenti operazioni di Azure IoT durante i test, ma mantenere l'estensione del provider di segreti nel cluster.

  4. Prendere nota del nome completo dell'estensione denominata mq-.... Questo nome viene usato nelle guide introduttive seguenti.

Come abbiamo risolto il problema?

In questo argomento di avvio rapido è stato configurato il cluster Kubernetes abilitato per Arc in modo che possa comunicare in modo sicuro con i componenti di Operazioni IoT di Azure. Quindi, questi componenti sono stati distribuiti nel cluster. Per questo scenario di test, è disponibile un singolo cluster Kubernetes che probabilmente è in esecuzione in locale nel computer. In uno scenario di produzione, tuttavia, è possibile usare gli stessi passaggi per distribuire i carichi di lavoro in molti cluster in molti siti.

Pulire le risorse

Se si continua con la guida introduttiva successiva, mantenere tutte le risorse.

Se si vuole eliminare la distribuzione di Operazioni IoT di Azure, ma si prevede di reinstallarla nel cluster, assicurarsi di mantenere il provider di segreti nel cluster.

  1. Nel gruppo di risorse nel portale di Azure selezionare il cluster.

  2. Nella pagina della risorsa cluster selezionare Estensioni.

  3. Selezionare tutte le estensioni di tipo microsoft.iotoperations.x e microsoft.deviceregistry.assets, quindi selezionare Disinstalla. Non disinstallare l'estensione del provider di segreti.

    Screenshot che mostra le estensioni da disinstallare.

  4. Tornare al gruppo di risorse e selezionare la risorsa percorso personalizzata, quindi selezionare Elimina.

Per eliminare tutte le risorse create per questa guida introduttiva, eliminare il cluster Kubernetes in cui sono state distribuite le operazioni di Azure IoT e rimuovere il gruppo di risorse di Azure che conteneva il cluster.

Passaggio successivo