Partager via


Démarrage rapide : Exécuter Opérations Azure IoT en préversion dans GitHub Codespaces avec K3s

Important

Opérations Azure IoT Préversion avec 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 Opérations Azure IoT lorsqu’une version en disponibilité générale sera disponible. 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.

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

Le reste des démarrages rapides de cette série de bout en bout s’appuient sur celui-ci pour définir des exemples de ressources, des pipelines de traitement de données et des visualisations.

Si vous voulez déployer Opérations Azure IoT sur un cluster local comme Azure Kubernetes Service Edge Essentials ou K3s sur Ubuntu, consultez Détails du déploiement.

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, plusieurs équipes travaillant ensemble effectuent ces tâches 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 voulez réutiliser 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.

  • Autorisations Microsoft.Authorization/roleAssignments/write au niveau du groupe de ressources.

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. Créez un cluster Kubernetes et connectez-le à Azure Arc pour la gestion à distance.
  2. Créez un registre de schémas.
  3. Déployez Opérations Azure IoT sur votre cluster.

Connecter un cluster Kubernetes à Azure Arc

Azure IoT Operations prend en charge Azure Kubernetes Service (AKS) Edge Essentials et K3s sur les clusters Ubuntu. Cependant, pour des raisons de rapidité et de commodité, ce démarrage rapide utilise GitHub Codespaces pour héberger votre cluster.

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 savoir comment déployer Azure IoT Operations sur un cluster sous Windows ou Ubuntu, consultez Préparer votre cluster Kubernetes avec Azure Arc.

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é auparavant Opérations Azure IoT, reportez-vous aux étapes décrites dans Nettoyer les ressources pour désinstaller Opérations Azure IoT 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

Pour créer votre codespace et votre cluster, procédez comme suit :

  1. Créez le codespace dans GitHub Codespaces.

    Créer un codespace explorer-iot-operations

  2. 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. Pour obtenir la liste des régions actuellement prises en charge, consultez Régions prises en charge.

    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 ajoutées 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, ce codespace crée automatiquement une variable d’environnement CLUSTER_NAME définie avec le nom du codespace.

  3. Sélectionnez Créer un nouvel espace de code.

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

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

  6. Dans Visual Studio Code, sélectionnez Afficher>Terminal.

    Utilisez ce terminal pour exécuter toutes les commandes CLI pour gérer votre cluster.

Pour connecter votre cluster à Azure Arc :

  1. Dans votre terminal codespace, connectez-vous à Azure CLI :

    az login
    

    Conseil

    Si vous utilisez l’environnement codespace GitHub dans un navigateur plutôt que sur le bureau VS Code, l’exécution de 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 ! »
  2. Une fois que vous êtes connecté, Azure CLI affiche tous vos abonnements et indique votre abonnement par défaut avec un astérisque *. Pour continuer avec votre abonnement par défaut, sélectionnez Enter. Sinon, tapez le numéro de l’abonnement Azure que vous voulez utiliser.

  3. Inscrivez les fournisseurs de ressources demandés dans votre abonnement :

    Remarque

    Cette étape doit être exécutée une seule fois par abonnement. Pour inscrire des fournisseurs de ressources, vous devez disposer de l’autorisation d’effectuer l’opération /register/action qui est incluse dans les rôles Contributeur et Propriétaire de l’abonnement. Pour plus d’informations, consultez Fournisseurs et types de ressources Azure.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperations"
    az provider register -n "Microsoft.DeviceRegistry"
    az provider register -n "Microsoft.SecretSyncController"
    
  4. 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
    
  5. 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 --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
    

    Conseil

    La valeur de $CLUSTER_NAME est automatiquement définie sur le nom de votre codespace. Remplacez la variable d’environnement si vous souhaitez utiliser un autre nom.

  6. Récupérez l’élément objectId de l’application Microsoft Entra ID utilisée par le service Azure Arc dans votre locataire et enregistrez-le en tant que variable d’environnement. Exécutez la commande suivante exactement comme elle est écrite, sans changer la valeur GUID.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. 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
    

Créer un compte de stockage et un registre de schémas

Opérations Azure IoT nécessite un registre de schémas sur votre cluster. Le registre de schémas nécessite un compte de stockage Azure pour pouvoir synchroniser les informations de schéma entre le cloud et la périphérie.

La commande pour créer un registre de schémas dans cette section nécessite les autorisations Microsoft.Authorization/roleAssignments/write au niveau du groupe de ressources.

Exécutez les commandes CLI suivantes dans votre terminal Codespaces.

  1. Définissez des variables d’environnement pour les ressources que vous créez dans cette section.

    Paramètre substituable Valeur
    <STORAGE_ACCOUNT_NAME> Nom de votre compte de stockage. Les noms des comptes de stockage doivent comporter entre 3 et 24 caractères, et contenir seulement des chiffres et des lettres minuscules.
    <SCHEMA_REGISTRY_NAME> Un nom pour votre registre de schémas.
    <SCHEMA_REGISTRY_NAMESPACE> Un nom pour l’espace de noms de votre registre de schémas. L’espace de noms identifie de façon univoque un registre de schémas au sein d’un locataire.
    export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
    
  2. Créez un compte de stockage avec un espace de noms hiérarchique activé.

    az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
    
  3. Créez un registre de schémas qui se connecte à votre compte de stockage. Cette commande crée également un conteneur d’objets blob appelé schemas dans le compte de stockage s’il n’en existe pas déjà un.

    az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
    

Déployer Opérations Azure IoT préversion

Dans cette section, vous configurez votre cluster avec les dépendances de vos composants Opérations Azure IoT, puis vous déployez Opérations Azure IoT.

Exécutez les commandes CLI suivantes dans votre terminal Codespaces.

  1. Initialisez votre cluster pour Opérations Azure IoT.

    Conseil

    La commande init ne doit être exécutée qu’une seule fois par cluster. Si vous réutilisez un cluster où la version 0.8.0 d’Opérations Azure IoT était déjà déployée, vous pouvez ignorer cette étape.

    az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
    

    L’exécution de cette commande peut prendre plusieurs minutes. Vous pouvez observer la progression grâce à l’affichage de la progression du déploiement dans le terminal.

  2. Déployer Opérations Azure IoT. Cette commande prend plusieurs minutes à s’exécuter :

    az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance  --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id) --broker-frontend-replicas 1 --broker-frontend-workers 1  --broker-backend-part 1  --broker-backend-workers 1 --broker-backend-rf 2 --broker-mem-profile Low
    

    L’exécution de cette commande peut prendre plusieurs minutes. Vous pouvez observer la progression grâce à l’affichage de la progression du déploiement dans le terminal.

    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.

Afficher les ressources de votre cluster

Pendant que le déploiement est en cours, l’interface de progression de l’interface CLI vous montre l’étape de déploiement où vous vous trouvez. Une fois le déploiement terminé, vous pouvez utiliser des commandes kubectl pour observer les modifications sur le cluster ou, comme 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

Pour voir vos ressources dans le portail Azure, effectuez les étapes suivantes :

  1. Dans le portail Azure, accédez au groupe de ressources qui contient votre instance d’Opérations Azure IoT, ou recherchez et sélectionnez Opérations Azure IoT.

  2. Sélectionnez le nom de votre instance d’Opérations Azure IoT.

  3. Dans la page Vue d’ensemble de votre instance, l’onglet Extensions Arc affiche les ressources déployées sur votre cluster.

    Capture d’écran montrant l’instance d’Opérations Azure IoT sur votre cluster avec Arc.

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 voulez supprimer le déploiement d’Opérations Azure IoT mais conserver votre cluster, utilisez la commande az iot ops delete :

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Si vous voulez supprimer toutes les ressources que vous avez créées pour ce démarrage rapide, supprimez le cluster Kubernetes où vous avez déployé Opérations Azure IoT, puis supprimez le groupe de ressources Azure qui contenait le cluster.

Si vous avez utilisé Codespaces pour ces démarrages rapides, supprimez votre codespace de GitHub.

Étape suivante