在 Kubernetes 支持的边缘中使用 Akri 智能地发现边缘设备
Akri 框架有助于将 IoT 设备公开为资源,并为 Kubernetes 集群中的每个设备创建服务。
物联网正在快速增长,因此对边缘计算的需求也使得信息处理更接近物联网设备。 Kubernetes 是经过验证的颠覆性开源技术,适用于运营商和开发人员,可解决管理部署在边缘的大量应用程序的运营和技术问题。今天,我们有几个 Kubernetes 发行版,例如 K3S、KubeEdge 或 MicroK8S,您可以使用它们来快速开始处理边缘需求。
边缘节点是不同规模的设备。在工业物联网的情况下,或者在零售链的商店中,有大量的边缘服务器位于一个部门。轻型边缘服务器是连接到终端物联网设备的小型服务器。重型和轻型服务器可以成为 Kubernetes 集群的一部分,因为它们具有硬件容量。但终端物联网设备很难成为 Kubernetes 集群的一部分,Kubernetes 集群专用于单一功能并托管小型嵌入式应用程序以收集数据。例如,使用传感器或摄像机。重要的是这些设备是 Kubernetes 架构的一部分,以便可以通过边缘或云无缝获得输出。
另见: Kubernetes 和容器如何实现高度可扩展的 CI 应用程序
随着此类边缘设备数量的不断增加,管理托管 Kubernetes 集群的后续边缘服务器变得更加困难。新设备的添加和移除给操作员带来了更多的工作量。他们必须在架构中找到并分配资源并监控可用性。此外,在某个时间点,您将需要添加更多服务器来处理更多边缘设备。这些问题要求边缘设备提供更好的智能,以处理 Kubernetes 集群中边缘物联网设备的存在。阿克里就是这样做的。它是微软发布的一个开源项目。
Akri 框架有助于将 IoT 设备公开为资源,并为 Kubernetes 集群中的每个设备创建服务。这使得应用程序可以使用来自设备的输入。 Akri 处理物联网设备的自动包含和删除,以及资源的分配和释放,以更好地优化集群。借助 Akri 的强大功能,可以动态添加尽可能多的 IoT 设备和推理节点来处理来自这些设备的数据。此外,当需要添加边缘物联网设备时,您可以无缝引入新的服务器环境。
Akri 支持处理网络连接的物联网边缘设备,如 IP 摄像头、控制器、PoS(销售点)终端,以及通过 Kubernetes 节点本地连接的设备,如 USB 连接的传感器。它根据 Kubernetes 集群中设备的可用性来调度工作负载。它使用类似于 ContainerNetwork 接口 (CNI) 的抽象层。但它不是抽象底层网络细节,而是消除了查找、利用和监控设备可用性的工作。因此,大大减少了 Kubernetes 管理员和开发人员的工作量。
Akri 基于 Kubernetes deviceplugin 框架,供应商将其用于静态资源,允许他们宣传他们的资源并对其进行监控,而无需编写额外的代码。 Akri 将此框架扩展到边缘环境,该环境具有不同的设备集和各种协议,用于监控并与这些边缘 IoT 设备通信。
在一个典型的 Kubernetes 边缘集群中,它增加了四个组件:Akri Controller、Akri Agent(Kubernetes 设备插件框架实现)和两个 CDR(自定义资源定义)(用于配置和实例)。这些组件协同工作以查找边缘 IoT 设备和安排其中的工作量。 Akri 代理可以部署到每个新的工作边缘节点。
简而言之,
- Akri 处理边缘 IoT 设备的出现和消失,并在集群中调度工作负载
- Akri 提供了一个接口,您可以在其中使用配置 CRD 提供配置,其余的工作由 Akri 完成。
- 运营商确保边缘节点的高可用性,以防其他节点出现故障。
- 由于 Akri 为每个边缘 IoT 设备创建 Kubernetes 服务,应用程序不需要跟踪 pod 或边缘节点的状态。
您可以在 Github 上为 Akri 项目做出贡献,并在他们的 Slack 频道上加入讨论。
结论
将 Kubernetes 用于边缘是一项令人兴奋的发展,它极大地实现了应用程序策略的一致性、端到端自动化以及更快的服务部署和扩展。 Akri 带来了一种更简化的方法,允许对支持边缘的网络的所有部分进行更多控制,并使 Kubernetes 管理员和开发人员的生活更轻松。
物联网技术