Akri,一个用于建立Kubernetes和边缘计算连接的开源项目
作者:iyacontrol
来源:SegmentFault 思否社区
Akri 使您可以轻松地将异构叶子设备(例如IP摄像机和USB设备)公开为Kubernetes集群中的资源,同时还支持公开嵌入式硬件资源(例如GPU和FPGA)。Akri不断检测有权访问这些设备的节点,并根据这些节点调度工作负载。
Why Akri
在边缘,有各种各样的传感器,控制器和MCU类设备正在产生数据并执行动作。为了使Kubernetes成为可行的边缘计算解决方案,Kubernetes集群需要轻松利用这些异构的“叶子设备”。但是,许多此类叶子设备太小,无法自行运行Kubernetes。Akri 是一个开源项目,将这些叶设备公开为Kubernetes集群中的资源。它利用并扩展了 Kubernetes设备插件框架,该框架是在考虑云的基础上创建的,并专注于静态资源,例如GPU和其他系统硬件。Akri采用了此框架并将其应用于边缘,边缘包含一组具有独特通信协议和间歇可用性的叶子设备。
Akri专为边缘设计,可处理叶子设备的动态创建和销毁情况。Akri提供了类似于CNI的抽象层,但是它没有对底层网络详细信息进行抽象。操作员只需要将Akri配置应用于集群,即可指定发现协议(例如ONVIF)和应部署的Pod(例如视频帧服务器)。然后剩下的事,Akri来完成。操作员还可以允许多个节点使用分支设备,从而在节点脱机的情况下提供高可用性。此外,Akri将为每种类型的叶子设备(或Akri Configuration)自动创建Kubernetes服务,从而无需使用应用程序来跟踪Pod或节点的状态。
最重要的是,Akri被构建为可扩展的。我们目前拥有ONVIF和udev发现协议,并且正在努力实现OPC UA,同时社区成员可以轻松添加更多协议。Akri支持的协议越多,Akri可以发现的叶子设备的范围越广。
Akri 工作原理
Akri的架构由四个关键组件组成:
Akri Configuration CRD Akri Instance CRD Agent( 一个设备插件实现) 一个自定义控制器
示例
操作员将ONVIF配置应用于集群。 Akri Agent 使用ONVIF协议发现IP摄像机,并为每个发现的摄像机创建实例。 Akri控制器将看到实例并部署在配置中指定的akri-onvif-video-broker pod。控制器还将为每个ONVIF摄像机创建一个Kubernetes服务,并为所有ONVIF摄像机创建一个服务。