Partager via


Déployer Opérations Azure IoT sur un cluster Kubernetes avec Arc

Important

Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Vous devrez déployer une nouvelle installation d’Opérations Azure IoT lorsqu’une version en disponibilité générale sera publiée. Vous ne pourrez pas mettre à niveau une installation en préversion.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Déployez Préversion Opérations Azure IoT sur un cluster Kubernetes à l’aide d’Azure CLI. Une fois que vous avez déployé Opérations Azure IoT, vous pouvez gérer et déployer d’autres charges de travail sur votre cluster.

  • Un déploiement Opérations Azure IoT décrit tous les composants et ressources qui activent le scénario Opérations Azure IoT. Ces composants et ressources sont les suivants :

    • Une instance Opérations Azure IoT
    • Des extensions Arc
    • Localisations personnalisées
    • Des règles de synchronisation des ressources
    • Des ressources que vous pouvez configurer dans votre solution Opérations Azure IoT, comme des actifs, un répartiteur MQTT et des flux de données
  • Une instance Opérations Azure IoT est l’une des parties d’un déploiement. Il s’agit de la ressource parente qui regroupe la suite de services définis dans Qu’est-ce qu’Opérations Azure IoT (préversion) ?, comme MQ, Akri et le connecteur OPC UA.

Dans cet article, lorsque nous parlons du déploiement d’Opérations Azure IoT, nous entendons l’ensemble complet de composants qui forment un déploiement. Une fois que le déploiement existe, vous pouvez afficher, gérer et mettre à jour l’instance.

Prérequis

Ressources cloud :

  • Un abonnement Azure.

  • Autorisations d’accès Azure. Au minimum, disposez d’autorisations Contributeur dans votre abonnement Azure. En fonction de l'état du drapeau de la fonctionnalité de déploiement que vous sélectionnez, vous pouvez également avoir besoin d'autorisations Microsoft/Authorization/roleAssignments/write pour le groupe de ressources qui contient votre cluster Kubernetes compatible avec Arc. Vous pouvez créer un rôle personnalisé dans le contrôle d’accès en fonction du rôle Azure ou attribuer un rôle intégré qui accorde cette autorisation. Pour plus d’informations, consultez rôles intégrés Azure pour général.

    Si vous n’avez pas d’autorisations d’écriture d’attribution de rôle, vous pouvez toujours déployer des Opérations Azure IoT en désactivant certaines fonctionnalités. Cette approche est décrite plus en détail dans la section Déployer de cet article.

    • Dans Azure CLI, utilisez la commande az role assignment create pour accorder des autorisations. Par exemple, az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

    • Dans le portail Azure, lorsque vous attribuez des rôles d’administrateur privilégiés à un utilisateur ou à un principal, vous pouvez restreindre l’accès à l’aide de conditions. Pour ce scénario, sélectionnez la conditionAutoriser l’utilisateur à attribuer tous les rôles dans la page Ajouter une attribution de rôle.

      Capture d’écran montrant l’attribution d’un accès de rôle hautement privilégié aux utilisateurs dans le portail Azure.

  • Un coffre de clés Azure qui a le modèle d’autorisation défini sur Stratégie d’accès du coffre. Vous pouvez vérifier ce paramètre dans la section configuration d’accès d’un coffre de clés existant. Pour créer un coffre de clés, utilisez la commande az keyvault create :

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

Ressources de développement :

  • Azure CLI installé sur votre ordinateur de développement. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Installation de l’interface de ligne de commande Azure. Ce scénario nécessite Azure CLI version 2.53.0 ou ultérieure. Utilisez az --version pour vérifier votre version et az upgrade pour effectuer une mise à jour si nécessaire.

  • Extension Opérations Azure IoT pour Azure CLI. Utilisez la commande suivante pour ajouter l’extension ou la mettre à jour vers la dernière version :

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

Un hôte de cluster :

  • Un cluster Kubernetes avec Azure Arc. Si vous n’en avez pas, suivez les étapes décrites dans Préparer votre cluster Kubernetes activé avec Azure Arc.

    Si vous avez précédemment déployé Opérations Azure IoT sur votre cluster, désinstallez ces ressources avant de continuer. Pour obtenir plus d’informations, consultez Mettre à jour Opérations Azure IoT.

    Les Opérations Azure IoT doivent fonctionner sur n’importe quel cluster Kubernetes conforme à CNCF. Actuellement, Microsoft prend uniquement en charge K3s sur Ubuntu Linux et WSL ou AKS Edge Essentials sur Windows.

    Utilisez l’extension Opérations Azure IoT pour Azure CLI afin de vérifier que votre hôte de cluster est configuré correctement pour le déploiement en utilisant la commande verify-host sur ’hôte du cluster :

    az iot ops verify-host
    

Déployer

Utilisez le portail Azure ou Azure CLI pour déployer Opérations Azure IoT sur votre cluster Kubernetes activé avec Arc.

L’expérience de déploiement du portail Azure est un outil d’assistance qui génère une commande de déploiement basée sur vos ressources et votre configuration. La dernière étape consiste à exécuter une commande Azure CLI. Vous avez donc toujours besoin des prérequis Azure CLI décrits dans la section précédente.

  1. Connectez-vous à Azure CLI de manière interactive avec un navigateur, même si vous vous êtes déjà connecté avant. Si vous ne vous connectez pas de manière interactive, vous risquez d’obtenir une erreur indiquant que votre appareil doit être géré pour accéder à votre ressource lorsque vous passez à l’étape suivante pour déployer les Opérations Azure IoT.

    az login
    

    Remarque

    Si vous utilisez GitHub Codespaces dans un navigateur, az login retourne une erreur localhost dans la fenêtre du navigateur après la connexion. Pour résoudre les problèmes, soit :

    • Ouvrez l’espace de code dans le bureau VS Code, puis exécutez az login dans le terminal. Cela ouvre une fenêtre de navigateur dans laquelle vous pouvez vous connecter à Azure.
    • Ou, après avoir obtenu l’erreur localhost sur le navigateur, copiez l’URL à partir du navigateur et utilisez curl <URL> dans un nouvel onglet de terminal. Vous devez voir une réponse JSON avec le message « Vous êtes connecté à Microsoft Azure ! ».
  2. Déployez Opérations Azure IoT sur votre cluster. Utilisez des indicateurs facultatifs pour personnaliser la commande az iot ops init pour qu’elle corresponde à votre scénario.

    Par défaut, la commande az iot ops init effectue les actions suivantes, dont certaines nécessitent que le principal connecté à l’interface CLI dispose d’autorisations élevées :

    • Configurez un principal de service et une inscription d’application pour permettre à votre cluster d’accéder au coffre de clés.
    • Configurez des certificats TLS.
    • Configurez un magasin de secrets sur votre cluster qui se connecte au coffre de clés.
    • Déployez les ressources Opérations Azure IoT.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_SETTINGS_PROPERTIES_RESOURCE_ID>
    

    Utilisez les paramètres facultatifs pour personnaliser votre déploiement, notamment :

    Paramètre active Description
    --add-insecure-listener Ajoutez une configuration de port 1883 non sécurisée à l’écouteur par défaut. À ne pas utiliser en production.
    --broker-config-file Chemin d’accès au fichier JSON Fournissez un fichier de configuration pour le répartiteur MQTT. Pour plus d’informations, consultez Configuration avancée du répartiteur MQTT et Configurer les paramètres principaux du répartiteur MQTT.
    --disable-rsync-rules Désactivez les règles de synchronisation des ressources sur l’indicateur de fonctionnalité de déploiement si vous n’avez pas les autorisations Microsoft.Authorization/roleAssignment/write dans le groupe de ressources.
    --name Chaîne Fournissez un nom pour votre instance Opérations Azure IoT. Autrement, un nom par défaut est attribué. Vous pouvez afficher le paramètre instanceName dans la sortie de commande.
    --no-progress Désactive l’affichage de progression du déploiement dans le terminal.
    --simulate-plc Incluez le simulateur OPC PLC fourni avec le connecteur OPC UA.
    --sp-app-id
    --sp-object-id
    --sp-secret
    ID d’application du principal de service, ID d’objet du principal de service et secret du principal de service Incluez tous ou certains de ces paramètres pour utiliser un principal de service, une inscription d’application et un secret existants au lieu d’autoriser init à en créer de nouveaux. Pour plus d’informations, consultez Configurer le principal de service et Key Vault manuellement.

Pendant que le déploiement est en cours, vous pouvez surveiller les ressources appliquées à votre cluster.

  • Si votre terminal le prend en charge, init affiche la progression du déploiement.

    Capture d’écran montrant la progression d’un déploiement Opérations Azure IoT dans un terminal.

    Une fois que la phase Déployer Opérations IoT a débuté, le texte du terminal devient un lien pour afficher la progression du déploiement dans le portail Azure.

    Capture d’écran montrant la progression d’un déploiement Opérations Azure IoT dans le portail Azure.

  • Autrement, ou si vous choisissez de désactiver l’interface de progression avec --no-progress ajouté à la commande init, vous pouvez utiliser des commandes kubectl pour afficher les pods sur votre cluster :

    kubectl get pods -n azure-iot-operations
    

    La fin du déploiement peut prendre plusieurs minutes. Réexécutez la commande get pods pour actualiser votre vue.

Une fois le déploiement terminé, utilisez az iot ops check afin d’évaluer le déploiement du service Opérations IoT pour l’intégrité, la configuration et la facilité d’utilisation. La commande check peut vous aider à trouver des problèmes dans votre déploiement et dans votre configuration.

az iot ops check

Vous pouvez également vérifier les configurations des mappages de rubriques, QoS et itinéraires de message en ajoutant le paramètre --detail-level 2 pour une vue détaillée.

Gérer Opérations Azure IoT

Après le déploiement, vous pouvez utiliser Azure CLI et le portail Azure pour afficher et gérer votre instance Opérations Azure IoT.

Instances de liste

Utilisez la commande az iot ops list pour afficher toutes les instances d’Opérations Azure IoT dans votre abonnement ou groupe de ressources.

La commande de base retourne toutes les instances dans votre abonnement.

az iot ops list

Pour filtrer les résultats par groupe de ressources, ajoutez le paramètre --resource-group.

az iot ops list --resource-group <RESOURCE_GROUP>

Afficher une instance

Utilisez la commande az iot ops show pour afficher les propriétés d’une instance.

az iot ops show --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP>

Vous pouvez également utiliser la commande az iot ops show pour afficher les ressources de votre déploiement Opérations Azure IoT dans Azure CLI. Ajoutez l’indicateur --tree pour afficher une arborescence du déploiement qui inclut l’instance d’Opérations Azure IoT spécifiée.

az iot ops show --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --tree

L’arborescence d’un déploiement ressemble à l’exemple suivant :

MyCluster
├── extensions
│   ├── akvsecretsprovider
│   ├── azure-iot-operations-ltwgs
│   └── azure-iot-operations-platform-ltwgs
└── customLocations
    └── MyCluster-cl
        ├── resourceSyncRules
        └── resources
            ├── MyCluster-ops-init-instance
            └── MyCluster-observability

Vous pouvez exécuter az iot ops check sur votre cluster pour évaluer l’intégrité et les configurations de chaque composant Opérations Azure IoT. Par défaut, la commande vérifie MQ, mais vous pouvez spécifier le service avec le paramètre --ops-service.

Mettre à jour les étiquettes et la description de l’instance

Utilisez la commande az iot ops update pour modifier les paramètres d’étiquettes et de description de votre instance d’Opérations Azure IoT. Les valeurs fournies dans la commande update remplacent les étiquettes ou descriptions existantes.

az iot ops update --name <INSTANCE_NAME> --resource-group <RESOURCE_GROUP> --desc "<INSTANCE_DESCRIPTION>" --tags <TAG_NAME>=<TAG-VALUE> <TAG_NAME>=<TAG-VALUE>

Pour supprimer toutes les étiquettes d’une instance, affectez une valeur Null au paramètre d’étiquettes. Par exemple :

az iot ops update --name <INSTANCE_NAME> --resource-group --tags ""

Désinstaller Opérations Azure IoT

Azure CLI et le portail Azure offrent différentes options pour désinstaller Opérations Azure IoT.

Si vous souhaitez supprimer l’ensemble d’un déploiement Opérations Azure IoT, utilisez Azure CLI.

Si vous souhaitez supprimer une instance d’Opérations Azure IoT mais conserver les ressources associées dans le déploiement, utilisez le portail Azure.

Utilisez la commande az iot ops delete pour supprimer le déploiement entier d’Opérations Azure IoT d’un cluster. La commande delete évalue les ressources liées à Opérations Azure IoT sur le cluster et présente une arborescence des ressources à supprimer. Le cluster doit être en ligne lorsque vous exécutez cette commande.

La commande delete supprime :

  • L’instance d’Opérations Azure IoT.
  • Les extensions Arc
  • Localisations personnalisées
  • Les règles de synchronisation des ressources
  • Les ressources que vous pouvez configurer dans votre solution Opérations Azure IoT, comme les actifs, le répartiteur MQTT et les flux de données
az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>

Mettre à jour Opérations Azure IoT

Actuellement, il n’existe aucune prise en charge de la mise à jour d’un déploiement Opérations Azure IoT existant. Au lieu de cela, désinstallez et redéployez une nouvelle version d’Opérations Azure IoT.

  1. Utilisez la commande az iot ops delete pour supprimer le déploiement d’Opérations Azure IoT sur votre cluster.

    az iot ops delete --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP>
    
  2. Mettez à jour l’extension CLI pour obtenir la dernière version d’Opérations Azure IoT.

    az extension update --name azure-iot-ops
    
  3. Suivez les étapes décrites dans cet article pour déployer la dernière version d’Opérations Azure IoT sur votre cluster.

    Conseil

    Ajoutez l’indicateur --ensure-latest à la commande az iot ops init pour vérifier que la dernière version de la CLI Opérations Azure IoT est installée et déclenchez une erreur si une mise à niveau est disponible.

Étapes suivantes

Si vos composants doivent se connecter à des points de terminaison Azure tels que SQL ou Fabric, découvrez comment Gérer les secrets pour votre déploiement Opérations Azure IoT (préversion).