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 :

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 vous permet d’évaluer un scénario de bout en bout avec Opérations Azure IoT. 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 vous recommandons é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. Pour plus d’informations sur ces options, passez aux prérequis.

Une fois que vous êtes prêt à en savoir plus sur les rôles et tâches individuels, les guides pratiques fournissent des détails d’implémentation et d’autorisations plus spécifiques.

Prérequis

Passez en revue les conditions préalables en fonction de l’environnement que vous utilisez pour héberger le cluster Kubernetes.

Pour ce guide de démarrage rapide, nous recommandons d’utiliser un environnement virtuel (GitHub Codespaces) comme moyen rapide de commencer sans installer de nouveaux outils.

Dans le cadre de ce guide de démarrage rapide, vous créez un cluster dans GitHub Codespaces, AKS Edge Essentials ou K3s sur Ubuntu Linux. 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.

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 :

  1. Connectez un cluster Kubernetes à Azure Arc pour une gestion à distance.
  2. Créez un coffre de clés Azure pour gérer les secrets de votre cluster.
  3. Configurez votre cluster avec un magasin de secrets et un principal de service pour communiquer avec les ressources cloud.
  4. 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 démarrage rapide, utilisez GitHub Codespaces, AKS Edge Essentials sur Windows ou K3s sur Ubuntu Linux.

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.

Démarrage de votre espace de code :

  1. Créez le codespace dans GitHub Codespaces.

    Créer un codespace explorer-iot-operations

    Vous n’avez pas besoin de fournir les secrets recommandés à cette étape. Si vous le faites, ils sont enregistrés sur votre compte GitHub pour être utilisés dans les codespaces actuels et futurs. Ils sont également ajoutés en tant que variables d’environnement dans le terminal codespace, et vous n’avez pas besoin d’exécuter les commandes CLI dans la section suivante qui configurent l’abonnement, le groupe de ressources ou les variables d’emplacement.

    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.
  2. Sélectionnez Créer un nouvel espace de code.

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

    Ouvrir VS Code pour appareil de bureau

  4. Si vous y êtes invité, installez l’extension GitHub Codespaces pour Visual Studio Code et connectez-vous à GitHub.

  5. 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 :

  1. Sur l’ordinateur sur lequel vous avez déployé le cluster Kubernetes ou votre terminal codespace, connectez-vous avec Azure CLI :

    az login
    

    Conseil

    Quand vous utilisez un codespace GitHub 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 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 ! »
  2. Définissez une variable d’environnement pour le nom du cluster, car elle s’affiche dans votre groupe de ressources.

    # Name of the Arc-enabled cluster to create in your resource group
    export CLUSTER_NAME=<NEW_CLUSTER_NAME>
    
  3. Définissez des variables d’environnement pour votre abonnement, votre emplacement et un nouveau groupe de ressources Azure. Si vous utilisez GitHub Codespaces et définissez ces secrets lors de la création de votre codespace, vous pouvez ignorer cette étape.

    # Id of the subscription where your resource group and Arc-enabled cluster will be created
    export SUBSCRIPTION_ID=<SUBSCRIPTION_ID>
    
    # Azure region where the created resource group will be located
    # Currently supported regions: "eastus", "eastus2", "westus", "westus2", "westus3", "westeurope", or "northeurope"
    export LOCATION=<REGION>
    
    # Name of a new resource group to create which will hold the Arc-enabled cluster and Azure IoT Operations resources
    export RESOURCE_GROUP=<NEW_RESOURCE_GROUP_NAME>
    
  4. Définissez le contexte d’abonnement Azure pour toutes les commandes :

    az account set -s $SUBSCRIPTION_ID
    
  5. Inscrivez les fournisseurs de ressources demandés dans votre 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"
    
  6. 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
    
  7. 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
    
  8. 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)
    
  9. 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. Sur l’ordinateur sur lequel vous avez déployé le cluster Kubernetes, exécutez la commande suivante :

    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.

  1. Créez un coffre de clés. Remplacez les paramètres d’espace réservé par vos propres informations.

    Paramètre substituable Valeur
    RESOURCE_GROUP Nom du groupe de ressources qui contient votre cluster connecté.
    KEYVAULT_NAME Nom d’un nouveau coffre de clés.
    az keyvault create --enable-rbac-authorization false --name $KEYVAULT_NAME --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.

  2. Exécutez la commande CLI suivante sur votre machine de développement ou sur votre terminal codespace. Remplacez les paramètres d’espace réservé par vos propres informations.

    Paramètre substituable Valeur
    CLUSTER_NAME Nom de votre cluster connecté.
    RESOURCE_GROUP Nom du groupe de ressources qui contient votre cluster connecté.
    KEYVAULT_NAME Nom de votre coffre de clés.
    az iot ops init --simulate-plc --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id $(az keyvault show --name <KEYVAULT_NAME> -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>.

  3. Ces démarrages rapides se servent du simulateur OPC PLC pour générer des exemples de données. Afin de configurer le simulateur pour le scénario de démarrage rapide, exécutez la commande suivante :

    Important

    N’utilisez pas l’exemple suivant en production, utilisez-le uniquement à des fins de simulation et de test. L’exemple réduit le niveau de sécurité du PLC OPC pour qu’il accepte les connexions d’un client sans opération explicite d’approbation de certificat de pair.

    az k8s-extension update --version 0.3.0-preview --name opc-ua-broker --release-train preview --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --cluster-type connectedClusters --auto-upgrade-minor-version false --config opcPlcSimulation.deploy=true --config opcPlcSimulation.autoAcceptUntrustedCertificates=true
    

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 :

  1. Dans le Portail Azure, accédez au groupe de ressources qui contient votre cluster.

  2. Dans la Vue d’ensemble du groupe de ressources, sélectionnez le nom de votre cluster.

  3. Sur votre cluster, sélectionnez Extensions dans la section Paramètres du menu.

    Capture d’écran montrant les extensions déployées sur votre cluster avec Arc.

    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.

    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.

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.

  1. Dans votre groupe de ressources sur le Portail Azure, sélectionnez votre cluster.

  2. Dans la page de ressources de votre cluster, sélectionnez Extensions.

  3. Sélectionnez les extensions du type microsoft.iotoperations.x et microsoft.deviceregistry.assets, puis sélectionnez Désinstaller.

    Conservez l’extension du fournisseur de secrets sur votre cluster.

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

Étapes suivantes