Akri
Akri is a CNCF Sandbox project that exposes heterogeneous leaf devices (such as IP cameras and USB devices) as resources in a Kubernetes cluster. It enables dynamic discovery and utilization of IoT edge devices through protocol-specific Discovery Handlers for ONVIF, OPC UA, and udev, with automatic workload scheduling and high availability.
APIs
Akri Metrics API
Akri exposes Prometheus metrics on port 8080 at /metrics for the Agent, Controller, and broker pods. Metrics include instance count, discovery response results and latency, and ...
Capabilities
Akri Edge Device Monitoring
Workflow capability for monitoring Akri edge device discovery and broker health in Kubernetes clusters. Combines Prometheus metrics to provide visibility into discovered instanc...
Run with NaftikoFeatures
Automatically discovers heterogeneous leaf devices (IP cameras, USB devices, industrial sensors) across Kubernetes cluster nodes using protocol-specific Discovery Handlers.
Discovers IP cameras via ONVIF standards and RTSP streams, with filtering by IP address, MAC address, ONVIF scopes, and device UUIDs.
Discovers industrial automation servers and Local Discovery Servers via OPC UA protocol, supporting x509 certificate authentication for secure connections.
Discovers locally attached hardware (USB devices, cameras, microphones) on Linux nodes using udev rules with kernel device name and capability filtering.
Automatically schedules broker Pods or Jobs per discovered device based on Akri Configuration specifications, managing the full workload lifecycle.
Multiple nodes can access a single leaf device, ensuring service continuity if a node fails. Supports multi-node device reservation.
Two CRDs: configurations.akri.sh for discovery specification and instances.akri.sh representing each discovered device as a Kubernetes resource.
Community can implement custom Discovery Handlers as DaemonSets using the akri-discovery-handler-template, enabling support for any device protocol.
Built-in Prometheus metrics on port 8080 for instance count, discovery response results, discovery latency, and broker pod count, with Grafana visualization support.
Supports Linux nodes on amd64, arm64v8, and arm32v7 architectures with Kubernetes v1.16+, K3s, and MicroK8s distributions.
Use Cases
Expose and manage IoT leaf devices such as IP cameras and USB sensors as first-class Kubernetes resources for edge computing workloads.
Connect industrial OPC UA servers and automation equipment to Kubernetes clusters for real-time monitoring and control workflows.
Deploy ONVIF-compliant IP camera brokers automatically as cameras are discovered, enabling distributed computer vision processing.
Automatically schedule GPU, FPGA, or specialized hardware workloads based on real-time device availability across cluster nodes.
Manage fleets of diverse edge devices with different protocols from a single Kubernetes control plane using unified Configuration resources.
Integrations
Native Prometheus metrics integration via ServiceMonitor and PodMonitor custom resources, with Grafana visualization support.
Official Helm chart packaging for deploying Akri Controller, Agent DaemonSet, and Discovery Handler DaemonSets.
Extends the Kubernetes Device Plugin Framework with edge-specific capabilities for heterogeneous leaf device management.
Built-in ONVIF protocol support for discovering and managing standards-compliant IP cameras and video devices.
Built-in OPC UA protocol support for industrial automation device discovery with certificate-based security.
Built-in udev integration for discovering locally attached hardware devices on Linux Kubernetes nodes.
CNCF Sandbox project integrating with cloud native tooling including K3s, MicroK8s, and standard Kubernetes distributions.