Condividi tramite


Distribuire le estensioni azure IoT Operations Preview in un cluster Kubernetes

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.

Distribuire Azure IoT Operations Preview in un cluster Kubernetes usando l'interfaccia della riga di comando di Azure. Dopo aver distribuito Le operazioni IoT di Azure, è possibile usare il servizio Azure IoT Orchestrator Preview per gestire e distribuire altri carichi di lavoro nel cluster.

Prerequisiti

Risorse cloud:

  • Una sottoscrizione di Azure.

  • Autorizzazioni di accesso di Azure. Avere almeno le autorizzazioni di Collaboratore nella sottoscrizione di Azure. A seconda dello stato del flag della funzionalità di distribuzione selezionato, potrebbero essere necessarie anche autorizzazioni Microsoft/Authorization/roleAssignments/write per il gruppo di risorse che contiene il cluster Kubernetes abilitato per Arc. È possibile creare un ruolo personalizzato nel controllo degli accessi in base al ruolo di Azure o assegnare un ruolo predefinito che concede questa autorizzazione. Per altre informazioni, vedere Ruoli predefiniti di Azure per Generale.

    Se non si hanno autorizzazioni di scrittura per l'assegnazione di ruolo, è comunque possibile distribuire operazioni IoT di Azure disabilitando alcune funzionalità. Questo approccio viene illustrato in modo più dettagliato nella sezione Deploy extensions (Distribuisci estensioni ) di questo articolo.

    • Nell'interfaccia della riga di comando di Azure usare il comando az role assignment create per concedere le autorizzazioni. Ad esempio, az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

    • Nella portale di Azure viene richiesto di limitare l'accesso usando le condizioni quando si assegnano ruoli di amministratore con privilegi a un utente o a un'entità di sicurezza. Per questo scenario, selezionare la condizione Consenti all'utente di assegnare tutti i ruoli nella pagina Aggiungi assegnazione di ruolo.

      Screenshot che mostra l'assegnazione dell'accesso con privilegi elevati agli utenti nel portale di Azure.

  • Un insieme di credenziali delle chiavi di Azure con il modello di autorizzazione impostato su Criteri di accesso all'insieme di credenziali. È possibile controllare questa impostazione nella sezione Configurazione di Accesso di un insieme di credenziali delle chiavi esistente. Se è necessario creare un nuovo insieme di credenziali delle chiavi, usare il comando az keyvault create :

    az keyvault create --enable-rbac-authorization false --name "<KEYVAULT_NAME>" --resource-group "<RESOURCE_GROUP>"
    

Risorse per lo sviluppo:

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

  • Estensione Azure IoT Operations per l'interfaccia della riga di comando di Azure. Usare il comando seguente per aggiungere l'estensione o aggiornarla alla versione più recente:

    az extension add --upgrade --name azure-iot-ops
    

Un host del cluster:

  • Un cluster Kubernetes con abilitazione di Azure Arc. Se non è disponibile, seguire la procedura descritta in Preparare il cluster Kubernetes abilitato per Azure Arc.

    Se nel cluster sono già state distribuite operazioni IoT di Azure, disinstallare tali risorse prima di continuare. Per altre informazioni, vedere Aggiornare le operazioni di Azure IoT.

    Le operazioni di Azure IoT devono funzionare in qualsiasi cluster kubernetes conforme a CNF. Attualmente, Microsoft supporta solo K3s in Ubuntu Linux e WSL o AKS Edge Essentials in Windows. L'uso di Ubuntu in sottosistema Windows per Linux (WSL) è il modo più semplice per ottenere un cluster Kubernetes per i test.

    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
    

Distribuire estensioni

Usare l'interfaccia della riga di comando di Azure per distribuire i componenti di Operazioni IoT di Azure nel cluster Kubernetes abilitato per Arc.

  1. Accedere all'interfaccia della riga di comando di Azure in modo interattivo con un browser anche se è già stato eseguito l'accesso in precedenza. Se non si esegue l'accesso in modo interattivo, potrebbe essere visualizzato un errore che indica che il dispositivo deve essere gestito per accedere alla risorsa quando si continua con il passaggio successivo per distribuire le operazioni di Azure IoT.

    az login
    

    Nota

    Se si usa GitHub Codespaces in un browser, az login restituisce un errore localhost nella finestra del browser dopo l'accesso. Per correggere una delle due operazioni seguenti:

    • Aprire lo spazio di codice nel desktop di VS Code e quindi eseguirlo az login nel terminale. Verrà visualizzata una finestra del browser in cui è possibile accedere ad Azure.
    • In alternativa, dopo aver visualizzato l'errore localhost nel browser, copiare l'URL dal browser e usarlo curl <URL> in una nuova scheda del terminale. Verrà visualizzata una risposta JSON con il messaggio "È stato eseguito l'accesso a Microsoft Azure!".
  2. Distribuire le operazioni di Azure IoT nel cluster. Usare flag facoltativi per personalizzare il comando az iot ops init per adattarlo allo scenario.

    Per impostazione predefinita, il az iot ops init comando esegue le azioni seguenti, alcune delle quali richiedono che l'entità che ha eseguito l'accesso all'interfaccia della riga di comando abbia autorizzazioni elevate:

    • Configurare un'entità servizio e la registrazione dell'app per concedere al cluster l'accesso all'insieme di credenziali delle chiavi.
    • Configurare i certificati TLS.
    • Configurare un archivio segreti nel cluster che si connette all'insieme di credenziali delle chiavi.
    • Distribuire le risorse per le operazioni di Azure IoT.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_SETTINGS_PROPERTIES_RESOURCE_ID>
    

    Importante

    Per impostazione predefinita, il comando az iot ops init non distribuisce il componente Responsabile del trattamento dei dati. Per distribuire il responsabile del trattamento dei dati, aggiungere l'argomento --include-dp .

    Se non si dispone di autorizzazioni Microsoft.Authorization/roleAssignment/write nel gruppo di risorse, aggiungere il flag di --disable-rsync-rules funzionalità. Questo flag disabilita le regole di sincronizzazione delle risorse nella distribuzione.

    Se si vuole usare un'entità servizio esistente e la registrazione dell'app anziché consentire init di crearne di nuove, includere i --sp-app-id,--sp-object-idparametri e --sp-secret . Per altre informazioni, vedere Configurare manualmente l'entità servizio e Key Vault.

  3. Al termine della distribuzione, è possibile usare az iot ops check per valutare la distribuzione del servizio operazioni IoT per integrità, configurazione e usabilità. Il comando check consente di trovare problemi nella distribuzione e nella configurazione.

    az iot ops check
    

    È anche possibile controllare le configurazioni delle mappe degli argomenti, QoS e route dei messaggi aggiungendo il --detail-level 2 parametro per una visualizzazione dettagliata.

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. Eseguire di nuovo 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 dal menu.

    È 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.

    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.

Suggerimento

È possibile eseguire az iot ops check per valutare l'integrità e le configurazioni dei carichi di lavoro AIO distribuiti. Per impostazione predefinita, mq, inclusi i connettori cloud, vengono valutati ed è possibile specificare il servizio con --ops-service --svc.

Disinstallare le operazioni di Azure IoT

Usare il comando az iot ops delete per eliminare o disinstallare le operazioni di Azure IoT da un cluster. Il delete comando valuta le risorse correlate alle operazioni IoT di Azure nel cluster e presenta una visualizzazione albero delle risorse da eliminare. Il cluster deve essere online prima dell'esecuzione.

Il delete comando rimuove:

  • Estensioni di Azure IoT Operations
  • Regole di sincronizzazione delle risorse di Azure IoT Operations
  • Risorse per le operazioni di Azure IoT
  • Percorso personalizzato associato
az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>

Aggiornare le operazioni di Azure IoT

Attualmente non è disponibile alcun supporto per l'aggiornamento di una distribuzione esistente di Operazioni IoT di Azure. Disinstallare e ridistribuire invece una nuova versione delle operazioni IoT di Azure.

  1. Usare il comando az iot ops delete per eliminare la distribuzione di Azure IoT Operations nel cluster.

    az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
    
  2. Aggiornare l'estensione dell'interfaccia della riga di comando per ottenere la versione più recente di Operazioni IoT di Azure.

    az extension update --name azure-iot-ops
    
  3. Seguire la procedura descritta in questo articolo per distribuire la versione più recente delle operazioni IoT di Azure nel cluster.

    Suggerimento

    Aggiungere il --ensure-latest flag al az iot ops init comando per verificare che la versione più recente dell'interfaccia della riga di comando di Azure IoT Operations sia installata e generi un errore se è disponibile un aggiornamento.

Passaggi successivi

Se i componenti devono connettersi a endpoint di Azure come SQL o Fabric, informazioni su come gestire i segreti per la distribuzione di Azure IoT Operations Preview.