Architettura dei servizi Akri
Importante
Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.
Sarà necessario distribuire una nuova installazione di Azure IoT Operations quando viene resa disponibile una versione disponibile a livello generale, non sarà possibile aggiornare un'installazione di anteprima.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
Questo articolo illustra l'architettura dei servizi Akri. Dopo aver appreso i componenti principali dei servizi Akri, è possibile usarli per rilevare dispositivi e asset e aggiungerli al cluster Kubernetes.
I servizi Akri sono una versione commerciale gestita da Microsoft di Akri, un progetto open-source della Cloud Native Computing Foundation (CNCF).
Componenti principali
I servizi Akri sono costituiti dai cinque componenti seguenti:
- Laconfigurazione di Akri è una risorsa personalizzata in cui si assegna un nome al dispositivo. Tale configurazione indica ai servizi Akri il tipo di dispositivi da cercare.
- L’istanza di Akri è una risorsa personalizzata che tiene traccia della disponibilità e dell'utilizzo di un dispositivo. Ogni istanza di Akri rappresenta un dispositivo foglia.
- I gestori dell'individuazione di Akri cercano il dispositivo configurato e segnalano all'agente i dispositivi individuati.
- L'agente di Akri crea la risorsa personalizzata dell'istanza di Akri.
- Ilcontroller di Akri consente di usare un dispositivo configurato. Il controller vede ogni istanza di Akri e distribuisce un pod broker che sa come connettersi e usare la risorsa.
Definizioni di risorse personalizzate
Una definizione di risorsa personalizzata (CRD) è un'estensione dell’API Kubernetes che consente di definire nuovi tipi di oggetto. Esistono due CRD dei servizi Akri:
- Impostazione
- Istanza
CRD della configurazione di Akri
La CRD di configurazione configura i servizi Akri. Consente di creare configurazioni che descrivono le risorse da individuare e il pod da distribuire in un nodo che individua una risorsa. Per altre informazioni, vedere CRD della configurazione di Akri. Lo schema della CRD specifica le impostazioni necessarie per tutte le configurazioni, incluse le impostazioni seguenti:
- Il protocollo di individuazione per la ricerca di risorse. Ad esempio, ONVIF o Udev.
spec.capacity
che definisce il numero massimo di nodi che possono pianificare carichi di lavoro in questa risorsa.spec.brokerPodSpec
che definisce il pod broker da pianificare per ognuna di queste risorse segnalate.spec.instanceServiceSpec
che definisce il servizio che fornisce un singolo endpoint stabile per accedere al set di pod broker di ogni singola risorsa.spec.configurationServiceSpec
che definisce il servizio che fornisce un singolo endpoint stabile per accedere al set di tutti i broker per tutte le risorse associate alla configurazione.
CRD dell'istanza di Akri
Ogni istanza di Akri rappresenta una singola risorsa visibile al cluster. Ad esempio, se sono presenti cinque telecamere IP visibili al cluster, le istanze sono cinque. La CRD dell'istanza abilita il coordinamento dei servizi Akri e la condivisione di risorse. Queste istanze archiviano lo stato interno e non sono destinate alla modifica. Per altre informazioni, vedere Informazioni dettagliate sulla condivisione di risorse.
Agente
L'agente di Akri implementa i plug-in del dispositivo Kubernetes per le risorse individuate. L'agente di Akri esegue le attività seguenti:
- Controlla le modifiche alla configurazione per determinare le risorse da cercare.
- Monitora la disponibilità delle risorse per determinare le risorse da annunciare. In un ambiente perimetrale, la disponibilità delle risorse cambia spesso.
- Informa Kubernetes delle modifiche apportate all'integrità e alla disponibilità delle risorse.
Queste attività, combinate con lo stato archiviato nell'istanza, consentono a più nodi di condividere una risorsa rispettando i limiti definiti dall'impostazione spec.capacity
.
Per altre informazioni, vedere Informazioni dettagliate sull'agente.
Gestori dell’individuazione
Un gestore dell’individuazione trova i dispositivi. Esempi di dispositivo includono:
- Sensori USB connessi ai nodi.
- GPU incorporate nei nodi.
- Telecamere IP in rete.
Il gestore dell’individuazione segnala tutti i dispositivi individuati all'agente. Per l’individuazione di un set di dispositivi sono spesso disponibili implementazioni di protocolli, sia protocolli di rete, ad esempio OPC UA, che protocolli proprietari. I gestori dell’individuazione implementano il servizio DiscoveryHandler
definito in discovery.proto
. Per eseguire la registrazione con l'agente è necessario un gestore dell’individuazione che ospita il servizio Registration
definito in discovery.proto
.
Per altre informazioni, vedere Gestori dell’individuazione personalizzati.
Controller
Gli obiettivi del controller di Akri sono i seguenti:
- Creare o eliminare i pod e i servizi che abilitano la disponibilità delle risorse.
- Assicurarsi che le istanze siano allineate allo stato del cluster in un determinato momento.
Per raggiungere questi obiettivi, il controller:
- Controlla le modifiche dell'istanza per determinare quali pod e servizi devono esistere.
- Controlla i nodi contenuti in istanze che non esistono più.
Queste attività consentono al controller di Akri di garantire che i broker di protocollo e i servizi Kubernetes siano in esecuzione in tutti i nodi ed espongano le risorse desiderate, rispettando al contempo i limiti definiti dall'impostazione spec.capacity
.
Per altre informazioni, vedere la documentazione relativa alle Informazioni dettagliate sul controller.