« Electrifier l’informatique en bout de réseau pour les utilisateurs de Kubernetes », c’est ainsi que Microsoft décrit la vocation d’Akri. Ce projet open source que l'opérateur d'Azure vient d'annoncer permet en effet d’exposer la multiplicité des équipements edge produisant des données - capteurs, périphériques ou matériel embarqué tels que GPU, FPGA, contrôleurs, microcontrôleurs - en tant que ressources au sein d’un cluster Kubernetes. « Akri signifie bord en grec », rappelle Microsoft en ajoutant que le nom peut être aussi lu comme un acronyme : « A Kubernetes Resource Interface for the edge ». 

Le rôle d’Akri consiste à fournir une couche d’abstraction, similaire à celle de CNI (Container Network Interface) qui facilite l’intégration de plugins réseau. Mais ici, au lieu de fournir les détails du réseau sous-jacent, Akri se charge de trouver, utiliser et surveiller la disponibilité des équipements de bout de réseau tels que capteurs, caméras, périphériques USB, etc. Le projet exploite et étend le framework Kubernetes device plugin conçu à l’origine pour renseigner sur les ressources matérielles statiques, tels que les GPU et autres. Akri applique ce framework au contexte de l’informatique en périphérie, le edge, dans lequel une diversité d’équipements utilisent des protocoles de communication particuliers et présentent une disponibilité intermittente.

Des capacités de haute disponibilité

Akri détecte en continu des noeuds qui ont accès aux équipements edge et programme les charges de travail pour eux, décrit Microsoft. C’est un projet développé nativement pour Kubernetes constitué de 4 composants : deux CRD (CustomResourceDefinition permettant de définir des ressources spécifiques), une mise en oeuvre de plugin de périphériques et un contrôleur personnalisé. Les CRD, Akri Configuration, permettent d’indiquer à Akri le type de périphérique recherché. Le plugin Akri Agent cherche le périphérique et vérifie sa disponibilité. Enfin, le contrôleur aide à l’utiliser. Il voit chaque instance Akri correspondant à un équipement edge et déploie un élément intermédiaire (broker pod) qui sait comment le connecter et l’utiliser.

Pour mettre en oeuvre Akri, l’utilisateur doit simplement appliquer Akri Configuration à un cluster en spécifiant le protocole de découverte, par exemple ONVIF, ainsi que le pod qui devra être déployé lors de la découverte du périphérique edge, par exemple un serveur de trames vidéos, et Akri fait le reste, explique Kate Goldenring, ingénieur logiciel chez Microsoft, dans le billet de présentation. On peut aussi permettre à plusieurs noeuds d’utiliser un équipement edge pour conserver la disponibilité si un des noeuds s’arrête.

Une démo pour découvrir Akri

Akri peut être testé dès maintenant en utilisant une version Kubernetes légère comme K3S de Rancher ou MicroK8s de Canonical, ou encore AKS-HCI (Azure Kubernetes Service sur la pile hyperconvergée HCI d’Azure Stack). Sur GitHub, Microsoft propose aussi une démonstration pour suivre le fonctionnement d'Akri de tout en bout en découvrant comment il découvre dynamiquement les équipements et déploie les brokers pods et les services pour intervenir sur ces matériels, en l’occurence dans la démo, comment récupérer des frames vidéos et les servir via le protocole gRPC. 

Microsoft propose aux utilisateurs intéressés de lui signaler (en passant par Slack ou GitHub) les équipements edge dont le protocole de découverte ne serait pas encore pris en charge par Akri.