Akri
Akri is an open-source Kubernetes-based framework that discovers and exposes leaf and edge devices as schedulable resources inside a cluster (edge computing / resource orchestration).
- Dynamic discovery and registration of leaf and edge devices into Kubernetes as custom resources (edge resource discovery).
- Broker pods that abstract underlying devices and make them available to workloads through standard Kubernetes mechanisms (workload integration).
- Pluggable discovery handlers for various device discovery protocols and environments, such as udev and ONVIF (device discovery extensibility).
- Configuration via Kubernetes Custom Resource Definitions (CRDs) to describe how to discover, broker, and access specific device classes (Kubernetes extension).
- Support for multi-node clusters and constrained environments, enabling workloads to target devices located at the edge (edge orchestration).
More About Akri
Akri addresses the problem of how to discover, register, and consume diverse edge and leaf devices from within Kubernetes clusters, focusing on environments where devices such as cameras, sensors, and other peripherals are intermittently available and not natively visible to Kubernetes (edge computing / resource orchestration).
The project introduces a set of Kubernetes Custom Resource Definitions (CRDs) (Kubernetes extension) that describe discovery configurations, device instances, and brokers. A DiscoveryHandler (device discovery) is responsible for finding devices that match a given configuration, such as devices identified by udev rules or ONVIF-compatible IP cameras. When devices are discovered, Akri creates custom resources that represent those devices and can be targeted by workloads.
Akri deploys broker pods (workload abstraction) on nodes where devices are discovered. These brokers implement the logic to interface with the underlying device and expose it to consuming applications via common mechanisms such as network endpoints, environment variables, or mounted volumes (application integration). This abstraction allows applications to rely on Kubernetes scheduling and service concepts without embedding device-specific discovery or connection logic.
Enterprises and organizations use Akri in distributed edge scenarios, such as industrial Internet of Things (IoT), retail, or smart building deployments, where clusters run on resource-constrained hardware and must interact with heterogeneous devices (edge deployment). Akri integrates with standard Kubernetes toolchains, allowing operators to manage device access using familiar constructs like Deployments, DaemonSets, and Services (Kubernetes operations).
From an architectural perspective, Akri runs as components on each node, including the Akri Agent, which interacts with DiscoveryHandlers, and the Akri Controller, which manages custom resources and broker lifecycle (control plane extension). DiscoveryHandlers are pluggable and can be implemented as containerized services that speak specific device protocols or interact with host interfaces.
In terms of ecosystem interoperability, Akri aligns with cloud native patterns defined within the Cloud Native Computing Foundation (CNCF) (cloud native ecosystem). It is categorized as an edge and IoT enabling layer on top of Kubernetes that bridges physical devices and containerized workloads, providing enterprises with a way to model, schedule, and manage access to non-traditional resources using standard cluster operations and policies.