Architecture Azure IoT Akri (préversion)
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.
Cet article vous aide à comprendre l’architecture Azure IoT Akri Préversion. Après votre découverte des composants principaux d’Azure IoT Akri, vous pouvez l’utiliser pour détecter des appareils et des ressources, et les ajouter à votre cluster Kubernetes.
Azure IoT Akri est une version commerciale gérée par Microsoft d’Akri, un projet open source Cloud Native Computing Foundation (CNCF).
Composants de base
Azure IoT Akri se compose des cinq éléments suivants :
- Configuration Akri est une ressource personnalisée où vous nommez un appareil. Cette configuration indique à Azure Iot Akri le type d’appareil à rechercher.
- Instance Akri est une ressource personnalisée qui effectue le suivi de la disponibilité et de l’utilisation d’un appareil. Chaque instance Akri représente un appareil à nœud terminal.
- Les gestionnaires de découverte Akri recherchent l’appareil configuré et informent l’agent sur les appareils détectés.
- L’Agent Akri crée la ressource personnalisée d’instance Akri.
- Le Contrôleur Akri vous aide à utiliser une appareil configuré. Le contrôleur voit chaque instance Akri et déploie un pod répartiteur qui sait comment se connecter à la ressource et l’utiliser.
Définitions de ressources personnalisées
Une définition de ressource personnalisée (CRD) est une extension d’API Kubernetes qui vous permet de définir de nouveaux types d’objets. Il existe deux CRD Azure IoT Akri :
- Configuration
- Instance
CRD de configuration Akri
Le CRD de configuration configure Azure IoT Akri. Vous créez des configurations décrivant les ressources à découvrir et le pod à déployer sur un nœud qui détecte une ressource. Pour obtenir plus d’informations, consultez CRD de configuration Akri. Le schéma de CRD spécifie les paramètres que toutes les configurations doivent avoir, y compris les paramètres suivants :
- Protocole de découverte pour rechercher des ressources. Par exemple, ONVIF ou udev.
spec.capacity
qui définit le nombre maximal de nœuds pouvant planifier des charges de travail sur cette ressource.spec.brokerPodSpec
qui définit le pod répartiteur à planifier pour chacune de ces ressources signalées.spec.instanceServiceSpec
qui définit le service qui fournit un point de terminaison stable unique pour accéder à l’ensemble de pods répartiteurs de chaque ressource individuelle.spec.configurationServiceSpec
qui définit le service qui fournit un point de terminaison stable unique pour accéder à l’ensemble de tous les répartiteurs pour toutes les ressources associées à la configuration.
CRD d’instance Akri
Chaque instance Azure IoT Akri représente une ressource individuelle visible par le cluster. Par exemple, s’il existe cinq caméras IP visibles par le cluster, il existe cinq instances. Le CRD d’instance active la coordination et le partage de ressources Azure IoT Akri. Ces instances stockent l'état interne et ne sont pas destinées à être modifiées par vous. Pour obtenir plus d’informations, consultez Partage des ressources en détail.
Agent
L’agent Akri implémente Kubernetes Device-Plugins (Plug-ins d’appareil Kubernetes) pour les ressources découvertes. L’Agent Akri effectue les tâches suivantes :
- Recherche les modifications de configuration pour déterminer les ressources à rechercher.
- Surveille la disponibilité des ressources pour déterminer les ressources à publier. Dans un environnement en périphérie, la disponibilité des ressources change souvent.
- Informe Kubernetes de toute modification apportée à l’intégrité et à la disponibilité des ressources.
Ces tâches, associées à l’état stocké dans l’instance, permettent à plusieurs nœuds de partager une ressource tout en respectant les limitations définies par le paramètre spec.capacity
.
Pour découvrir plus d’informations, voir l’Agent en détail.
Gestionnaires de découverte
Un gestionnaire de découverte recherche des appareils. Par les exemples d’appareil, sont inclus :
- Capteurs USB connectés à des nœuds.
- GPU incorporés dans des nœuds.
- Caméras IP sur le réseau.
Le gestionnaire de découverte signale tous les appareils découverts à l’agent. Il existe souvent des implémentations de protocole pour découvrir un ensemble d’appareils, qu’il s’agisse d’un protocole réseau tel qu’OPC UA ou un protocole propriétaire. Les gestionnaires de découverte implémentent le service DiscoveryHandler
défini dans discovery.proto
. Un gestionnaire de découverte est requis pour s’inscrire auprès de l’agent qui héberge le service Registration
défini dans discovery.proto
.
Pour découvrir plus d’informations, voir Gestionnaires de découverte personnalisés.
Contrôleur
Les objectifs du contrôleur Akri sont les suivants :
- Créer ou supprimer les services et les pods qui activent la disponibilité d’une ressource.
- Vérifier que les instances sont alignées sur l’état du cluster à un moment donné.
Pour atteindre ces objectifs, le contrôleur :
- Surveille les modifications apportées à une instance pour déterminer les pods et services qui doivent exister.
- Recherche les nœuds contenus dans des instances qui n’existent plus.
Ces tâches permettent au contrôleur Akri de veiller à ce que les répartiteurs de protocole et services Kubernetes s’exécutent sur tous les nœuds et exposent les ressources souhaitées, tout en respectant les limites définies par le paramètre spec.capacity
.
Pour plus d'informations, consultez la documentation du Contrôleur en détail.
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour