Dela via


Arkitektur för Akri-tjänster

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version görs tillgänglig. Du kommer inte att kunna uppgradera en förhandsversionsinstallation.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Den här artikeln hjälper dig att förstå arkitekturen för Akri-tjänsterna. När du har lärt dig mer om kärnkomponenterna i Akri-tjänsterna kan du använda dem för att identifiera enheter och tillgångar och lägga till dem i ditt Kubernetes-kluster.

Akri-tjänsterna är en Microsoft-hanterad kommersiell version av Akri, ett CNCF-projekt (Cloud Native Computing Foundation) med öppen källkod.

Kärnkomponenter

Akri-tjänsterna består av följande fem komponenter:

  • Akri-konfiguration är en anpassad resurs där du namnger en enhet. Den här konfigurationen talar om för Akri-tjänsterna vilken typ av enheter som ska sökas efter.
  • Akri-instansen är en anpassad resurs som spårar tillgängligheten och användningen av en enhet. Varje Akri-instans representerar en lövenhet.
  • Akri-identifieringshanterare letar efter den konfigurerade enheten och informerar agenten om identifierade enheter.
  • Akri-agenten skapar den anpassade Akri-instansresursen.
  • Akri-styrenheten hjälper dig att använda en konfigurerad enhet. Kontrollanten ser varje Akri-instans och distribuerar en koordinatorpodd som vet hur man ansluter till och använder resursen.

Diagram över Arkitekturen för Akri-tjänster.

Anpassade resursdefinitioner

En anpassad resursdefinition (CRD) är ett Kubernetes API-tillägg som gör att du kan definiera nya objekttyper. Det finns två CRD:er för Akri-tjänster:

  • Konfiguration
  • Instans

Akri-konfigurations-CRD

Konfigurations-CRD konfigurerar Akri-tjänsterna. Du skapar konfigurationer som beskriver de resurser som ska identifieras och podden som ska distribueras på en nod som identifierar en resurs. Mer information finns i Akri-konfigurations-CRD. CRD-schemat anger de inställningar som alla konfigurationer måste ha, inklusive följande inställningar:

  • Identifieringsprotokollet för att hitta resurser. Till exempel ONVIF eller udev.
  • spec.capacity som definierar det maximala antalet noder som kan schemalägga arbetsbelastningar för den här resursen.
  • spec.brokerPodSpec som definierar den asynkrona podd som ska schemaläggas för var och en av dessa rapporterade resurser.
  • spec.instanceServiceSpec som definierar tjänsten som tillhandahåller en enda stabil slutpunkt för åtkomst till varje enskild resurss uppsättning asynkrona poddar.
  • spec.configurationServiceSpec som definierar den tjänst som tillhandahåller en enda stabil slutpunkt för att komma åt uppsättningen med alla asynkrona koordinatorer för alla resurser som är associerade med konfigurationen.

Akri-instans crd

Varje Akri-instans representerar en enskild resurs som är synlig för klustret. Om det till exempel finns fem IP-kameror som är synliga för klustret finns det fem instanser. Crd-instansen möjliggör samordning av Akri-tjänster och resursdelning. Dessa instanser lagrar internt tillstånd och är inte avsedda att redigeras. Mer information finns i Resursdelning på djupet.

Handläggare

Akri-agenten implementerar Kubernetes Device-Plugins för identifierade resurser. Akri-agenten utför följande uppgifter:

  • Den söker efter konfigurationsändringar för att fastställa vilka resurser som ska sökas efter.
  • Den övervakar resurstillgängligheten för att avgöra vilka resurser som ska annonseras. I en gränsmiljö ändras resurstillgängligheten ofta.
  • Den informerar Kubernetes om eventuella ändringar av resurshälsa och tillgänglighet.

Dessa uppgifter, i kombination med tillståndet som lagras i instansen, gör det möjligt för flera noder att dela en resurs samtidigt som de gränser som definieras av spec.capacity inställningen respekteras.

Mer information finns i Mer information om agenten.

Identifieringshanterare

En identifieringshanterare hittar enheter. Exempel på enhet är:

  • USB-sensorer som är anslutna till noder.
  • GPU:er inbäddade i noder.
  • IP-kameror i nätverket.

Identifieringshanteraren rapporterar alla identifierade enheter till agenten. Det finns ofta protokollimplementeringar för att identifiera en uppsättning enheter, oavsett om det är ett nätverksprotokoll som OPC UA eller ett proprietärt protokoll. Identifieringshanterare implementerar tjänsten DiscoveryHandler som definieras i discovery.proto. En identifieringshanterare krävs för att registrera med agenten, som är värd för den Registration tjänst som definieras i discovery.proto.

Mer information finns i Anpassade identifieringshanterare.

Handkontroll

Akri-kontrollantens mål är att:

  • Skapa eller ta bort poddar och tjänster som aktiverar resurstillgänglighet.
  • Se till att instanserna är justerade efter klustertillståndet när som helst.

För att uppnå dessa mål måste kontrollanten:

  • Bevakar instansändringar för att avgöra vilka poddar och tjänster som ska finnas.
  • Söker efter noder som finns i instanser som inte längre finns.

Dessa uppgifter gör det möjligt för Akri-kontrollanten att se till att protokollkoordinatorer och Kubernetes-tjänster körs på alla noder och exponerar önskade resurser, samtidigt som de gränser som definieras av spec.capacity inställningen respekteras.

Mer information finns i dokumentationen för Kontrollant på djupet.