微软发布可将K8s扩展至边缘设备的Akri项目

微软开发全新的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。