Share via


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 una distribuzione.

    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_ID>
    

    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.

Configurare la rete del cluster (servizio Azure Kubernetes edizione Enterprise)

Nei cluster Azure Kubernetes Edge Essentials abilitare le connessioni in ingresso al broker di anteprima mq di Azure IoT e configurare il port forwarding:

  1. Abilitare una regola del firewall per la porta 8883:

    New-NetFirewallRule -DisplayName "Azure IoT MQ" -Direction Inbound -Protocol TCP -LocalPort 8883 -Action Allow
    
  2. Eseguire il comando seguente e prendere nota dell'indirizzo IP per il servizio denominato aio-mq-dmqtt-frontend:

    kubectl get svc aio-mq-dmqtt-frontend -n azure-iot-operations -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  3. Abilitare il port forwarding per la porta 8883. Sostituire <aio-mq-dmqtt-frontend IP address> con l'indirizzo IP annotato nel passaggio precedente:

    netsh interface portproxy add v4tov4 listenport=8883 listenaddress=0.0.0.0 connectport=8883 connectaddress=<aio-mq-dmqtt-frontend IP address>
    

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.

Aggiornamento di una distribuzione

Attualmente non è disponibile alcun supporto per l'aggiornamento di una distribuzione esistente di Operazioni IoT di Azure. Iniziare invece con un cluster pulito per una nuova distribuzione.

Se si vuole eliminare la distribuzione di Operazioni IoT di Azure nel cluster in modo che sia possibile ridistribuirla, passare al cluster nel portale di Azure. Selezionare le estensioni del tipo microsoft.iotoperations.x e microsoft.deviceregistry.assets, quindi selezionare Disinstalla. Mantenere il provider di segreti nel cluster, in quanto è un prerequisito per la distribuzione e non incluso in una nuova distribuzione.

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.