Partager via


Démarrage rapide : exécuter Opérations Azure IoT dans GitHub Codespaces avec K3s

Dans ce démarrage rapide, vous déployez Opérations Azure IoT sur un cluster Kubernetes avec Azure Arc pour pouvoir gérer à distance vos appareils et charges de travail. À la fin du démarrage rapide, vous disposez d’un cluster que vous pouvez gérer à partir du cloud. Les guides de démarrage rapide suivants 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.

Avant de commencer

Cette série de guides de démarrage rapide est destinée à vous aider à prendre en main Opérations Azure IoT le plus rapidement possible pour 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 dont certaines peuvent nécessiter des autorisations élevées.

Pour une nouvelle expérience utilisateur optimale, nous vous recommandons d’utiliser un compte gratuit Azure pour que vous disposiez d’autorisations de propriétaire sur les ressources de ces guides de démarrage rapide.

Nous utilisons également GitHub Codespaces comme environnement virtuel de ce démarrage rapide pour que vous puissiez tester le scénario sans installer de nouveaux outils sur vos machines. Toutefois, si vous souhaitez déployer Opérations Azure IoT sur un cluster local sur Ubuntu ou Azure Kubernetes Service (AKS), consultez Préparer votre cluster Kubernetes avec Azure Arc.

Important

Actuellement, K3s sur Ubuntu 24.04 et Tanzu Kubernetes sont les seules plateformes pour le déploiement d’Opérations Azure IoT en production. Pour en savoir plus, consultez Environnements pris en charge.

Prérequis

Avant de commencer, préparez les prérequis suivants :

  • 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 allons-nous résoudre ?

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éer un cluster Kubernetes dans GitHub Codespaces.
  2. Connecter le cluster à Azure Arc pour une gestion à distance.
  3. Créer un registre de schémas.
  4. Déployer Opérations Azure IoT sur votre cluster.

Créer un cluster

Vous pouvez déployer Opérations Azure IoT vers K3s sur Ubuntu, Azure Kubernetes Service (AKS) Edge Essentials et AKS sur Azure Local. Toutefois, pour des raisons de rapidité et de commodité, ce guide de démarrage rapide utilise GitHub Codespaces pour héberger votre cluster. Pour découvrir comment déployer Opérations Azure IoT sur un cluster sous Windows ou Ubuntu à la place, consultez Préparer votre cluster Kubernetes avec Azure Arc.

Note

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

L’environnement Codespaces est suffisant pour effectuer les étapes du démarrage rapide, mais il ne prend pas en charge les configurations avancées.

Dans cette section, vous créez un cluster. 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.

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 ID de votre abonnement Azure.
    GROUPE_DE_RESSOURCES Nom d'un nouveau groupe de ressources Azure dans lequel votre cluster sera créé.
    EMPLACEMENT 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 comme secrets dans 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 une variable d’environnement CLUSTER_NAME définie avec le nom du codespace.

  3. Sélectionnez Créer un codespace.

  4. Une fois le codespace prêt, sélectionnez le bouton de menu en haut à gauche, puis sélectionnez Ouvrir dans le bureau VS Code.

    Capture d’écran montrant l’ouverture du codespace dans le bureau VS Code.

  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.

Connecter un cluster à Azure Arc

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 :

    • Ouvrez le codespace dans le bureau VS Code, puis revenez au terminal du navigateur et réexécutez az login.
    • Ou , 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 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 requis dans votre abonnement :

    Note

    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 comme 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. Exécutez la commande suivante sur l’ordinateur sur lequel vous avez déployé le cluster Kubernetes :

    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

Un registre de schémas est un référentiel synchronisé qui stocke les définitions des messages dans le cloud et en périphérie. 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 les informations de schémas stockées dans le cloud.

La commande pour créer un registre de schémas dans cette section nécessite l’autorisation Microsoft.Authorization/roleAssignments/write au niveau du groupe de ressources. Cette autorisation est utilisée pour donner au registre de schémas un rôle de contributeur pour qu’il puisse écrire sur le compte de stockage.

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.

    Espace réservé 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 uniquement des chiffres et des lettres en minuscule.
    <SCHEMA_REGISTRY_NAME> Nom de votre registre de schémas. Les noms des registres de schémas peuvent uniquement contenir des chiffres, des lettres en minuscule et des traits d’union.
    <SCHEMA_REGISTRY_NAMESPACE> Un nom pour l’espace de noms de votre registre de schémas. L’espace de noms identifie exclusivement un registre de schémas au sein d’un locataire. Les noms des espaces de noms du registre des schémas peuvent uniquement contenir des chiffres, des lettres en minuscule et des traits d’union.
    STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME>
    SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME>
    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 blob appelé schémas dans le compte de stockage.

    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

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 dernière version d’Opérations Azure IoT a déjà été 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.

    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 effectuer le suivi de 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 des ressources dans un cluster

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, procédez comme suit :

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

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

  3. Dans la page Vue d’ensemble de votre instance, sélectionnez l’onglet Résumé de ressource pour afficher l’état d’approvisionnement des ressources déployées sur votre cluster.

    Capture d’écran montrant l’instance 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 pour 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 dans Codespaces. 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