Démarrage rapide : déployer Opérations Azure IoT (préversion) 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.
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.
Dans ce guide de démarrage rapide, vous déployez une suite de services IoT sur un cluster Kubernetes avec Azure Arc afin de pouvoir gérer à distance vos appareils et charges de travail. Opérations Azure IoT est une suite d’opérations numériques de services qui inclut Azure IoT Orchestrator Préversion. Ce guide de démarrage rapide vous guide tout au long de l’utilisation d’Orchestrator pour déployer ces services sur un cluster Kubernetes. À la fin du guide de démarrage rapide, vous disposez d’un cluster que vous pouvez gérer à partir du cloud qui génère des exemples de données à utiliser dans les guides de démarrage rapide suivants.
Les services déployés dans ce guide de démarrage rapide sont les suivants :
- Orchestrateur Azure IoT préversion
- Azure IoT MQ préversion
- Répartiteur OPC UA Azure IoT préversion avec une ressource thermostat simulée pour commencer à générer des données
- Processeur de données Azure IoT préversion avec un pipeline de démonstration pour démarrer le routage des données simulées
- Azure IoT Akri préversion
- Registre de Dispositifs Azure préversion
- Gestion du réseau en couches Azure IoT préversion
- Observabilité
Les guides de démarrage rapide suivants de cette série s'appuient sur celui-ci pour définir des exemples d'actifs, des pipelines de traitement de données et des visualisations. Si vous souhaitez déployer Azure IoT Operations pour exécuter vos propres charges de travail, consultez Préparer votre cluster Kubernetes avec Azure Arc et Déployer des extensions Azure IoT Operations préversion sur un cluster Kubernetes.
Avant de commencer
Cette série de guides de démarrage rapide est destinée à vous aider à prendre en main Azure IoT Operations le plus rapidement possible afin de pouvoir évaluer un scénario de bout en bout. Dans un environnement de développement ou de production réel, ces tâches sont effectuées par plusieurs équipes travaillant ensemble et certaines tâches peuvent nécessiter des autorisations élevées.
Pour une nouvelle expérience utilisateur optimale, nous vous recommandons d’utiliser un compte gratuit Azure afin que vous disposiez d’autorisations de propriétaire sur les ressources de ces guides de démarrage rapide. Nous présentons des étapes également d’utiliser GitHub Codespaces comme environnement virtuel dans lequel vous pouvez rapidement commencer à déployer des ressources et à exécuter des commandes sans installer de nouveaux outils sur vos propres machines.
Prérequis
Pour ce guide de démarrage rapide, vous créez un cluster Kubernetes pour recevoir le déploiement Azure IoT Operations.
Si vous souhaitez réexécuter ce guide de démarrage rapide avec un cluster sur lequel Opérations Azure IoT est déjà déployé, reportez-vous aux étapes décrites dans Nettoyer les ressources pour désinstaller Opérations Azure IoT avant de continuer.
Avant de commencer, respectez les conditions préalables suivantes :
Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez-en un gratuitement avant de commencer.
Un compte GitHub.
Visual Studio Code installé sur votre machine de développement. Pour plus d’informations, consultez Télécharger Visual Studio Code.
Quel problème résoudrons-nous ?
Opérations Azure IoT est une suite de services de données qui s’exécutent sur des clusters Kubernetes. Vous souhaitez que ces clusters soient gérés à distance à partir du cloud et qu’ils puissent communiquer en toute sécurité avec les ressources et les points de terminaison cloud. Nous abordons ces problèmes avec les tâches suivantes dans ce guide de démarrage rapide :
- Créez un cluster Kubernetes et connectez-le à Azure Arc pour la gestion à distance.
- Créez un coffre de clés Azure pour gérer les secrets de votre cluster.
- Configurez votre cluster avec un magasin de secrets et un principal de service pour communiquer avec les ressources cloud.
- Déployez Opérations Azure IoT sur votre cluster.
Connecter un cluster Kubernetes à Azure Arc
Opérations Azure IoT doit fonctionner sur n’importe quel cluster Kubernetes conforme aux normes de Cloud Native Computing Foundation (CNCF). Pour ce guide de démarrage rapide, utilisez GitHub Codespaces pour héberger votre cluster.
Dans cette section, vous allez créer un cluster et le connecter à Azure Arc. Si vous souhaitez réutiliser un cluster sur lequel vous avez déployé des opérations Azure IoT avant, reportez-vous aux étapes décrites dans Nettoyer les ressources pour désinstaller Azure IoT Operations avant de continuer.
Utilisez GitHub Codespaces pour essayer Opérations Azure IoT sur un cluster Kubernetes sans installer quoi que ce soit sur votre ordinateur local. Le codespace Azure-Samples/explore-iot-operations est préconfiguré avec :
- K3s s’exécutant dans K3d pour un cluster Kubernetes léger
- Azure CLI
- Kubectl pour la gestion des ressources Kubernetes
- D’autres outils utiles tels que Helm et k9s
Important
Les espaces de code sont faciles à configurer rapidement et à détruire ultérieurement, mais ils ne conviennent pas à l’évaluation des performances ou aux tests de mise à l’échelle. Utilisez GitHub Codespaces uniquement pour l’exploration.
Pour créer votre espace de code et votre cluster, procédez comme suit :
Créez le codespace dans GitHub Codespaces.
Fournissez les secrets recommandés suivants pour votre codespace :
Paramètre Valeur SUBSCRIPTION_ID Votre ID d’abonnement Azure. RESOURCE_GROUP Nom d'un nouveau groupe de ressources Azure dans lequel votre cluster sera créé. LOCATION Une région Azure proche de vous. Les régions suivantes sont prises en charge en préversion publique : eastus, eastus2, westus, westus2, westus3, westeurope ou northeurope. Conseil
Les valeurs que vous fournissez à cette étape sont enregistrées sur votre compte GitHub pour être utilisées dans ce codespace et les suivants. Elles sont également ajoutées automatiquement comme variables d’environnement dans le terminal du codespace, et vous pouvez utiliser ces variables d’environnement dans les commandes CLI de la section suivante.
En outre, cet espace de code crée automatiquement une variable d’environnement
CLUSTER_NAME
définie avec le nom de l’espace de code.Sélectionnez Créer un nouvel espace de code.
Une fois l’espace de code prêt, sélectionnez le bouton de menu en haut à gauche, puis sélectionnez Ouvrir dans VS Code Desktop.
Si vous y êtes invité, installez l’extension GitHub Codespaces pour Visual Studio Code et connectez-vous à GitHub.
Dans Visual Studio Code, sélectionnez Afficher>Terminal.
Utilisez ce terminal pour exécuter toutes les commandes de ligne de commande et CLI pour gérer votre cluster.
Pour connecter votre cluster à Azure Arc :
Dans votre terminal Codespace, connectez-vous à Azure CLI :
az login
Conseil
Si vous utilisez l’environnement GitHub codespace dans un navigateur plutôt que sur le bureau VS Code, l’exécution
az login
retourne une erreur localhost. Pour corriger l’erreur, effectuez les opérations suivantes :- Ouvrez le codespace dans le bureau VS Code, puis revenez au terminal du navigateur et réexécutez
az login
. - Ou bien, après avoir obtenu l’erreur localhost sur le navigateur, copiez l’URL à partir du navigateur et exécutez
curl "<URL>"
dans un nouvel onglet de terminal. Vous devez voir une réponse JSON avec le message « Vous êtes connecté à Microsoft Azure ! »
- Ouvrez le codespace dans le bureau VS Code, puis revenez au terminal du navigateur et réexécutez
Définissez le contexte d’abonnement Azure pour toutes les commandes :
az account set -s $SUBSCRIPTION_ID
Inscrivez les fournisseurs de ressources demandés dans votre abonnement :
Remarque
Cette étape doit être exécutée une seule fois par abonnement.
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"
Utilisez la commande az group create pour créer un groupe de ressources dans votre abonnement Azure pour stocker toutes les ressources :
az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Utilisez la commande az connectedk8s connect pour activer Arc sur votre cluster Kubernetes et le gérer comme partie de votre ressource Azure :
az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
Conseil
La valeur de celle-ci
$CLUSTER_NAME
est automatiquement définie sur le nom de votre espace de code. Remplacez la variable d’environnement si vous souhaitez utiliser un autre nom.Récupérez l’élément
objectId
de l’application Microsoft Entra ID utilisée par le service Azure Arc et enregistrez-le en tant que variable d’environnement.export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
Utilisez la commande az connectedk8s enable-features pour activer la prise en charge personnalisée de l’emplacement sur votre cluster. Cette commande utilise l’élément
objectId
de l’application Microsoft Entra ID utilisée par le service Azure Arc.az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
Vérifier le cluster
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
Cette commande d’assistance vérifie la connectivité aux points de terminaison Azure Resource Manager et Microsoft Container Registry.
Déployer Opérations Azure IoT préversion
Dans cette section, vous allez utiliser la commande az iot ops init pour configurer votre cluster afin qu’il puisse communiquer en toute sécurité avec vos composants (Opérations Azure IoT et coffre de clés). Ensuite, vous déploierez Azure IoT Operations.
Exécutez les commandes CLI suivantes dans votre terminal Codespaces.
Créez un coffre de clés. Pour ce scénario, nous allons utiliser le même nom et le même groupe de ressources que votre cluster. Les noms de coffre de clés ont une longueur maximale de 24 caractères. Par conséquent, la commande suivante tronque la
CLUSTER_NAME
variable d’environnement si nécessaire.az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
Conseil
Vous pouvez utiliser un coffre de clés existant pour vos secrets, mais vérifiez que le modèle d’autorisation est défini sur stratégie d’accès du coffre. Vous pouvez vérifier ce paramètre dans le portail Azure dans la section Configuration d’accès d’un coffre de clés existant. Ou utilisez la commande az keyvault show pour vérifier que
enableRbacAuthorization
est faux.Déployer Opérations 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)
Si vous obtenez une erreur indiquant que Votre appareil doit être géré pour accéder à votre ressource, exécutez de nouveau
az login
et assurez-vous que vous vous êtes connecté de manière interactive dans un navigateur.Conseil
Si vous avez déjà exécuté la commande
az iot ops init
, une inscription d’application a été créée automatiquement dans Microsoft Entra ID. Vous pouvez réutiliser cette inscription plutôt que d’en créer une à chaque fois. Pour utiliser une inscription d’application existante, ajoutez le paramètre facultatif--sp-app-id <APPLICATION_CLIENT_ID>
.
Afficher les ressources de votre cluster
Pendant que le déploiement est en cours, vous pouvez surveiller les ressources appliquées à votre cluster. Vous pouvez utiliser des commandes kubectl pour observer les modifications sur le cluster ou, étant donné que le cluster est activé par Arc, vous pouvez utiliser le portail Azure.
Pour afficher les pods sur votre cluster, exécutez la commande suivante :
kubectl get pods -n azure-iot-operations
La fin du déploiement peut prendre plusieurs minutes. Continuez à exécuter la commande get pods
pour actualiser votre affichage.
Pour afficher votre cluster sur le portail Azure, procédez comme suit :
Dans le Portail Azure, accédez au groupe de ressources qui contient votre cluster.
Dans la Vue d’ensemble du groupe de ressources, sélectionnez le nom de votre cluster.
Sur votre cluster, sélectionnez Extensions dans la section Paramètres du menu.
Vous pouvez voir que votre cluster exécute des extensions du type microsoft.iotoperations.x, qui est le nom du groupe pour tous les composants Opérations Azure IoT et le service d’orchestration. Ces extensions ont un suffixe unique qui identifie votre déploiement. Dans la capture d’écran précédente, ce suffixe est -z2ewy.
Il existe également une extension appelée akvsecretsprovider. Cette extension est le fournisseur de secrets que vous avez configuré et installé sur votre cluster avec la commande
az iot ops init
. Vous pouvez supprimer et réinstaller les composants Opérations Azure IoT pendant le test, mais conserver l’extension du fournisseur de secrets sur votre cluster.Notez le nom complet de l’extension nommée mq-.... Vous utilisez ce nom dans les guides de démarrage rapide suivants.
Comment avons-nous résolu le problème ?
Dans ce guide de démarrage rapide, vous avez configuré votre cluster Kubernetes avec Arc afin qu’il puisse communiquer en toute sécurité avec vos composants Opérations Azure IoT. Ensuite, vous avez déployé ces composants sur votre cluster. Pour ce scénario de test, vous disposez d’un seul cluster Kubernetes qui s’exécute probablement localement sur votre ordinateur. Dans un scénario de production, toutefois, vous pouvez utiliser les mêmes étapes pour déployer des charges de travail sur de nombreux clusters sur de nombreux sites.
Nettoyer les ressources
Si vous passez au guide de démarrage rapide suivant, conservez toutes vos ressources.
Si vous souhaitez supprimer le déploiement d’Opérations Azure IoT, mais prévoyez de le réinstaller sur votre cluster, veillez à conserver le fournisseur de secrets sur votre cluster.
Dans votre groupe de ressources sur le Portail Azure, sélectionnez votre cluster.
Dans la page de ressources de votre cluster, sélectionnez Extensions.
Sélectionnez les extensions du type microsoft.iotoperations.x et microsoft.deviceregistry.assets, puis sélectionnez Désinstaller. Ne désinstallez pas l’extension du fournisseur de secrets.
Revenez à votre groupe de ressources et sélectionnez la ressource d’emplacement personnalisé, puis sélectionnez Supprimer.
Si vous souhaitez supprimer toutes les ressources que vous avez créées pour ce guide de démarrage rapide, supprimez le cluster Kubernetes sur lequel vous avez déployé Opérations Azure IoT et supprimez le groupe de ressources Azure qui contenait le cluster.