Akri亮相:可与Kubernetes共同构建联网边缘的开源项目


综述

在计算领域中,“边缘”概念的一大直接体现正是能够产生数据并执行操作的传感器、控制器、微控制器单元(MCU)以及由此组成的设备阵列。为了使Kubernetes能够成为通用型边缘计算解决方案,集群需要有能够轻松查找这些叶设备(leaf devices)。但是,此类设备大多太过微小,无法独力承载Kubernetes。面对这样的难题,Kubernetes工作负载要如何使用这些设备?Kubernetes Pod又该如何搜索并访问这些设备的输出结果?现在我们有了答案,这就是Akri!

日前,微软公司自豪地公布了Akri项目。作为一个全新开源项目,Akri能够将各边缘设备作为Kubernetes集群内的资源进行公开。Akri在希腊语中意为“边缘”,其首字母也可理解为“A Kubernetes Resource Interface for the edge(用于边缘位置的Kubernetes资源接口)”。

Akri能够提供一个类似于容器网络接口(CNI)的抽象层,但它并没有对底层网络细节进行抽象,而是极大简化了对摄像机、传感器等叶设备进行查找、使用及监控的工作。

Akri使用并扩展了Kubernetes设备插件框架,此框架最初专门为管理GPU及其他系统硬件等静态资源所构建。Akri采用这套框架并将其应用于边缘,包括对接一组独特的通信协议以及大量间或可用的叶设备。Akri会不断检测有权访问各叶设备的节点,并为其调度工作负载。简而言之,只要经过命名,Akri就能找到并使用目标设备。

架构与功能

1.jpg

Akri面向Kubernetes所原生开发,其架构中包含四大关键Kubernetes组件:2种自定义资源(CRD)、1个设备插件实现,外加1个自定义控制器。第1种自定义资源“Akri配置”可以由用户自由定义,旨在告知Akri你打算查找哪种叶设备类型。接下来,Akri代理(由Kubernetes设备插件框架实现)会搜索叶设备并检查目标设备的可用性。在检测到目标设备后,Akri控制器会帮助“使用它”,包括查看各Akri实例(每个实例代表一个叶设备),并部署一个了解如何接入特定叶设备并加以使用的“代理”Pod。

专为边缘生态所构建

Akri专为边缘位置所设计,能够处理叶设备的动态接入与断开场景。用户只需将Akri配置应用于集群,即可指定发现协议(例如使用开放网络视频接口论坛,简称ONVIF,协议)以及在成功发现之后需要部署的Pod(例如视频帧服务器)。

接下来,Akri即可自行完成剩余工作。用户还可要求多个节点使用同一叶设备,借此在某些节点脱机时实现高可用性。此外,Akri能够为每种类型的叶设备自动创建Kubernetes服务(即Akri配置),确保无需使用应用程序来跟踪Pod或节点的状态。

更重要的是,Akri在设计上拥有出色的可扩展性。该项目目前已经包含ONVIF与udev发现协议,社区成员还可以轻松向其中添加更多协议。Akri支持的协议越多,能够发现的叶设备范围也将越广。

了解更多并做出贡献

现在,你可以使用K3sMicroK8sAKS-HCL或者其他经过认证的Kubernetes发行版轻松在边缘集群上部署并测试Akri。要使用Akri,请首先参阅我们的端到端演示,其中包含如何发现模拟视频设备,并最终在流式应用程序中显示摄像机画面的完整示例。要了解更多详细信息,请参阅我们的说明文档,或关注10月21日召开的Edge边缘大会——我们将在会上具体介绍这项技术。

此项目提升了Kubernetes在边缘的功能,并将由Kubernetes生态系统中采用社区治理模式。要实现长足发现,Akri需要您的批评与帮助。您是否在使用中发现Akri未能按协议正确识别出目标设备?请加入我们的Slack,在GitHub上发布问题,或者通过Akri社区开发新的发现协议。我们欢迎大家继续完善并扩展Akri,以确保每个人都能从项目当中受益。

我们渴望了解你在项目中的体会以及对其未来发展的预期。共同联手,年轻的Akri将与Kubernetes建立起更为紧密的联系。

原文链接:Announcing Akri, an open source project for building a connected edge with Kubernetes

0 个评论

要回复文章请先登录注册