Architectuur van Akri-services
Belangrijk
Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.
U moet een nieuwe Installatie van Azure IoT Operations implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.
Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Dit artikel helpt u inzicht te hebben in de architectuur van de Akri-services. Nadat u meer hebt geleerd over de kernonderdelen van de Akri-services, kunt u ze gebruiken om apparaten en assets te detecteren en toe te voegen aan uw Kubernetes-cluster.
De Akri-services zijn een door Microsoft beheerde commerciële versie van Akri, een opensource Project Cloud Native Computing Foundation (CNCF).
Kernonderdelen
De Akri-diensten bestaan uit de volgende vijf onderdelen:
- Akri-configuratie is een aangepaste resource waarin u een apparaat een naam krijgt. Deze configuratie vertelt de Akri-services naar wat voor soort apparaten moeten worden gezocht.
- Eenkri-exemplaar is een aangepaste resource waarmee de beschikbaarheid en het gebruik van een apparaat worden bijgehouden. Elk Akri-exemplaar vertegenwoordigt een leaf-apparaat.
- Akri discovery handlers zoeken naar het geconfigureerde apparaat en informeren de agent over gedetecteerde apparaten.
- Met de Akri-agent maakt u de aangepaste Akri-instantieresource.
- Met de Akri-controller kunt u een geconfigureerd apparaat gebruiken. De controller ziet elke Akri-instantie en implementeert een brokerpod die weet hoe verbinding moet worden gemaakt met en de resource moet worden gebruikt.
Aangepaste resourcedefinities
Een aangepaste resourcedefinitie (CRD) is een Kubernetes API-extensie waarmee u nieuwe objecttypen kunt definiëren. Er zijn twee Akri-services CRD's:
- Configuratie
- Exemplaar
Akri-configuratie CRD
De configuratie-CRD configureert de Akri-services. U maakt configuraties die de resources beschrijven die moeten worden gedetecteerd en de pod die moet worden geïmplementeerd op een knooppunt waarmee een resource wordt gedetecteerd. Zie Akri-configuratie CRD voor meer informatie. Het CRD-schema geeft de instellingen op die alle configuraties moeten hebben, inclusief de volgende instellingen:
- Het detectieprotocol voor het zoeken naar resources. Bijvoorbeeld ONVIF of udev.
spec.capacity
dat het maximum aantal knooppunten definieert dat workloads op deze resource kan plannen.spec.brokerPodSpec
waarmee de brokerpod wordt gedefinieerd die moet worden gepland voor elk van deze gerapporteerde resources.spec.instanceServiceSpec
die de service definieert die één stabiel eindpunt biedt voor toegang tot de set brokerpods van elke afzonderlijke resource.spec.configurationServiceSpec
die de service definieert die één stabiel eindpunt biedt voor toegang tot de set van alle brokers voor alle resources die aan de configuratie zijn gekoppeld.
Akri-exemplaar CRD
Elk Akri-exemplaar vertegenwoordigt een afzonderlijke resource die zichtbaar is voor het cluster. Als er bijvoorbeeld vijf IP-camera's zichtbaar zijn voor het cluster, zijn er vijf exemplaren. Het exemplaar crd maakt coördinatie van Akri-services en het delen van resources mogelijk. Deze exemplaren slaan de interne status op en zijn niet bedoeld om te bewerken. Zie Voor meer informatie uitgebreide informatie over het delen van resources.
Agent
De Akri-agent implementeert Kubernetes Device-Plugins voor gedetecteerde resources. De Akri-agent voert de volgende taken uit:
- Er wordt gecontroleerd op configuratiewijzigingen om de resources te bepalen die moeten worden gezocht.
- Er wordt de beschikbaarheid van resources bewaakt om te bepalen welke resources moeten worden geadverteerd. In een edge-omgeving verandert de beschikbaarheid van resources vaak.
- Kubernetes informeert kubernetes over eventuele wijzigingen in de resourcestatus en beschikbaarheid.
Met deze taken, gecombineerd met de status die is opgeslagen in het exemplaar, kunnen meerdere knooppunten een resource delen met inachtneming van de limieten die zijn gedefinieerd door de spec.capacity
instelling.
Zie Agent uitgebreid voor meer informatie.
Detectie-handlers
Een detectiehandler vindt apparaten. Voorbeelden van apparaten zijn:
- USB-sensoren die zijn verbonden met knooppunten.
- GPU's die zijn ingesloten in knooppunten.
- IP-camera's op het netwerk.
De detectiehandler rapporteert alle gedetecteerde apparaten aan de agent. Er zijn vaak protocol-implementaties voor het detecteren van een set apparaten, ongeacht of een netwerkprotocol, zoals OPC UA of een eigen protocol. Detectiehandlers implementeren de DiscoveryHandler
service die is gedefinieerd in discovery.proto
. Er is een detectiehandler vereist om zich te registreren bij de agent, die als host fungeert voor de Registration
service die is gedefinieerd in discovery.proto
.
Zie Custom Discovery Handlers voor meer informatie.
Controller
De doelstellingen van de Akri-controller zijn:
- Maak of verwijder de pods en services die de beschikbaarheid van resources mogelijk maken of verwijderen.
- Zorg ervoor dat exemplaren op elk gewenst moment zijn afgestemd op de clusterstatus.
Om deze doelen te bereiken, heeft de controller het volgende:
- Let bijvoorbeeld op wijzigingen om te bepalen welke pods en services er moeten bestaan.
- Controleert op knooppunten die zijn opgenomen in exemplaren die niet meer bestaan.
Met deze taken kan de Akri-controller ervoor zorgen dat protocolbrokers en Kubernetes-services worden uitgevoerd op alle knooppunten en de gewenste resources beschikbaar maken, terwijl de limieten worden gerespecteerd die zijn gedefinieerd door de spec.capacity
instelling.
Zie de documentatie voor Controller in detail voor meer informatie.