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.
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 etaz 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.
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 ! ».
- Ouvrez l’espace de code dans le bureau VS Code, puis exécutez
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.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.
Autrement, ou si vous choisissez de désactiver l’interface de progression avec
--no-progress
ajouté à la commandeinit
, 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.
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>
Mettez à jour l’extension CLI pour obtenir la dernière version d’Opérations Azure IoT.
az extension update --name azure-iot-ops
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 commandeaz 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).