广告

KubeEdge将Kubernetes的力量扩展到边缘

  • 浏览(36)
  • 评论(0)
  • 译者:k8s

云原生计算和边缘计算代表了现代基础设施的两个独立而重要的方面。云原生计算是第二波云计算,可提供最佳的云投资回报。边缘计算充当云和物联网(IoT)设备之间的管道,为数百万个连接的设备和应用程序提供自主和智能计算。

人工智能的兴起使边缘计算变得更加重要——在云端训练的复杂模型部署在边缘进行推理。

Kubernetes已成为编排数据中心和公有云中运行的容器化工作负载的黄金标准。在很短的时间内,云原生态系统增加了多种功能,使Kubernetes成为运行Web规模应用程序和企业业务线应用程序的强大而可靠的平台。

投资物联网平台的公有云供应商正在将其产品扩展到边缘。物联网应用程序的设备注册、通信、部署和管理主要在云中运行,并具有对边缘的扩展支持。这些供应商现在正在连接跨物联网、ML和AI平台的点,以便将ML模型从云端无缝推送到边缘。Azure IoT Edge、AWS Greengrass和Google Cloud IoT Edge是扩展公有云的边缘平台的好例子。像FogHorn、Swim.ai和Rigado这样的初创公司正在构建多云、多接入边缘计算平台。

Kubernetes正迅速成为调度和管理容器之外资源的通用调度器。Kubernetes的控制平面旨在处理跨数百个节点运行的数万个容器。该架构非常适合管理可扩展的分布式边缘部署。每个边缘计算设备可以被视为一个节点,而一个或多个连接的设备可以被映射到pod。开发人员和运维人员可以使用熟悉的kubectl工具或Helm图表来推动在一个或多个边缘设备上运行的容器化IoT应用程序。这种方法使Kubernetes成为不仅适用于容器,也适用于通过自主边缘计算层管理的数百万台设备的控制平面。

云原生社区一直在探索将Kubernetes用于物联网和边缘计算。微软通过Virtual Kubelet方法尝试了这一点。2018年6月,谷歌、华为、红帽和VMware启动了物联网边缘工作组,正式开展相关工作。在西雅图的KubeCon + CloudNativeCon 2018上,华为推出了KubeEdge——这是将Kubernetes的强大功能用在边缘的官方项目。

KubeEdge的v0.2版本已经可用,稳定且完整,可解决与物联网和边缘相关的关键用例。它可以安装在受支持的Linux发行版上,也可以安装在像Raspberry Pi这样的ARM设备上。

作为Kubernetes和IoT的粉丝,笔者对KubeEdge的设计和架构非常着迷。与Kubernetes集群的节点不同,边缘节点必须以完全断开连接的模式工作。大型系统可能会运行多个边缘计算节点——这些节点不与控制平面通信,直到它们获得连接。这种模式与Kubernetes主节点和工作节点的原始设计有很大不同。

KubeEdge通过消息总线和数据存储的组合巧妙地解决了这个问题,使边缘节点自主且独立。存储在控制平面中的所需配置与边缘设备的本地数据存储同步,该边缘设备被缓存直到下一次握手。同样,边缘设备的数据存储中持久存在设备的当前状态。

KubeEdge利用Kubernetes原语,如控制器和自定义资源定义。与Replication Controller和StatefulSet Controller一样,控制平面内有一个Edge Controller,它与设备中部署的Edged运行时进行通信。这种设计使得可以使用kubectl来管理边缘部署。

对于边缘和控制平面之间的机器-机器通信和双工通信,KubeEdge依赖于来自Eclipse基金会的流行的开源MQTT代理Mosquitto。该平台还支持设备twin,以维持物联网设备的状态。SQLite用作数据存储区,用于保持设备twin状态以及边缘和控制平面之间来回流动的消息。WebSockets用于启用边缘节点和主节点之间的通信。

KubeEdge是使Kubernetes成为边缘计算统一控制平面的第一步。它的成功在很大程度上取决于主流云提供商(包括亚马逊、谷歌和微软)的采用。

  • 分享到:
  • icon
  • icon
  • icon
  • icon
箭头