设备|微软发布开源K8s 边缘设备项目Akri

近日 , 微软宣布了一个新的开源项目 。该项目名为Akri , 旨在使Kubernetes更容易与边缘网络设备一起使用 。
设备|微软发布开源K8s 边缘设备项目Akri
文章图片

文章图片

据悉 , Akri在希腊语中便表示“边缘” 。微软希望借助Akri为IP摄像机和传感器等轻型设备管理Kubernetes集群的资源 , 这样便省去了在这些设备上运行Kubernetes的麻烦 。
Akri让用户也能在Kubernetes工作负载中使用边缘设备 , Akri可以将边缘设备转换成Kubernetes集群中的资源 , 其提供类似容器网络接口(Container Network Interface , CNI)的抽象层 , 使得Kubernetes应用程序能够简单地使用 , 诸如摄影机和传感器等边缘设备 。
边缘设备指得是那些内置传感器、控制器 , 并搭载单芯片的小型设备 , 可以产出资料并且执行基本动作 , 微软提到 , 为了要让Kubernetes成为真正的通用边缘运算解决方案 , Kubernetes集群必需要能简单地找到这些边缘设备 , 而多数边缘设备都太小 , 因此无法自己执行Kubernetes 。为了解决这个问题 , 微软开发了Akri 。
Akri扩展Kubernetes设备扩展组件框架 , 这原本是用在像是GPU或是其他系统硬件等静态资源 , 而Akri将这个框架应用到了边缘 , Akri能够持续侦测有权访问边缘设备的节点 , 并且调度其工作负载 , 简单来说就是 , Akri能够自动找到并且使用这些设备 。
Akri是为Kubernetes原生设计的项目 , 由两个Kubernetes组件构建而成 , 这两个自定义资源分别是设备扩展组件实例以及自定义控制器 , 第一个自定义资源是用来告诉Akri , 想要探索的边缘设备类型 , 当Akri找到了目标设备 , 便会通过自定义控制器来使用边缘设备 。
由于边缘设备可能处在网络状态不佳的环境 , 因此连接状况也难以掌握 , 而Akri良好地处理边缘设备会遇到的情况 , 包括可以接受边缘设备时而上线 , 时而断线的情形 。Akri还能够自动为各种边缘设备 , 创建Kubernetes服务 , 不需要由应用程序关注Pod或是节点的状态 。
微软将Akri设计为可扩展的架构 , 目前其支持ONVIF和udev探索协议 , 而在开源社群中 , 开发者可以在Akri添加更多的协议支持 。用户可以在K3、MicroK8和AKS-HCI等各种经认证的Kubernetes发行版上使用Akri 。
微软软件工程师Kate Goldenring称 , 运行Kubernetes有很多好处 , Kubernetes用于管理大型设备容器集群 , 这些集群在边缘设备上托管现代应用程序的组件 。但是为了做到这一点 , Kubernetes集群需要一种简单的方法来发现那些设备 。问题是这些设备大多数都太小 , 无法单独运行Kubernetes 。
设备|微软发布开源K8s 边缘设备项目Akri
文章图片

文章图片

而Akri扩展了Kubernetes设备插件框架 , 该框架主要用于查找静态资源 , 例如GPU和其他硬件,其通过提供类似于容器网络接口的抽象层来工作 。
事实上 , Akri背后的架构也很简单 。Akri由四个关键的Kubernetes组件组成 , 包括两个自定义资源 , 一个设备插件实现和一个自定义控制器 。
所以 , 用户要做的就是将Akri配置应用于特定的Kubernetes集群 , 指定发现协议 , 平台将自动发现所需的边缘设备 。用户也可以为每个分支设备启用多个节点 , 以在一个节点脱机的情况下提供高可用性 。
同时 , Kate Goldenring透露 , 如果Akri发展良好 , 微软将把该项目的控制权移交给Kubernetes生态系统中社区管理基金会 。
【设备|微软发布开源K8s 边缘设备项目Akri】我们认为 , 对于具有足够能力运行Kubernetes的平台来说 , Kubernetes已经是第一选择 。但是 , 在边缘仍然有数十亿个轻量级传感器和设备没有足够的能力来运行这一框架 。


推荐阅读