什么是Kubernetes?Kubernetes如何让IoT edge受益

物联网(IoT)可以定义为一个由相互关联的计算设备组成的系统。这些设备具有唯一的标识符,能够在人与人或人与计算机没有交互的情况下通过网络传输数据。从传感器到信标再到可穿戴设备,小型物联网设备拥有自己的处理能力,并为处理和分析创建大量数据。通常,将所有这些数据发送到云中进行处理的效率很低。此外,数据传输依赖于网络可用性,可能会带来安全性、数据保护和隐私方面的隐患。

由于安全性、延迟、自主性和成本,物联网分析正在从云端转移到边缘。然而,将负载分配和管理到边缘的数百个节点可能是一个痛苦且乏味的过程。在边缘设备上分配和管理负载的一个关键要求就是使用轻量级生产解决方案,例如 Kubernetes。

Kubernetes 广泛用于云网络环境,但也可用于管理物联网边缘设备的工作负载。Kubernetes 解决了开发人员在构建和部署 IoT 解决方案时面临的诸多复杂性挑战。近年来,由于容器的众多优势,业界将重点从传统虚拟化转向了基于容器的虚拟化。

什么是Kubernetes?

Kubernetes 是用于容器化应用程序的部署和编排框架。它有助于在集群环境中管理容器化应用程序。Kubernetes 将资源分配给容器并执行复制、扩展、故障转移、滚动更新和其他必要的管理任务,以高效利用资源来可靠地运行应用程序。下图是 Kubernetes 的基本架构。

图片

容器提供了一个独立的层级来托管和运行微服务或应用程序。我们需要对容器进行管理以实现资源和负载分配、可扩展性和高可用性。

Kubernetes 在基础设施之上提供了一个层级来应对这些挑战。它使用主节点架构和标签作为名称标签来识别其对象。大多数在考虑可扩展性的情况下构建的分布式应用程序都是由微服务组成,并通过容器托管和运行。

在IoT edge中的挑战

计算和资源限制:物联网边缘设备的 CPU 和内存有限,因此需要有效使用和保留以实现解决方案的关键任务功能。

远程和资源管理:随着网络的快速增长,手动部署、管理和维护设备将变得极具挑战性且耗时。当今物联网边缘面临的一些主要困难和挑战包括:

  • 设备资源的高效使用、远程监控和控制,包括 CPU、内存、网络和边缘设备 I/O 端口
  • 托管和扩展应用程序的任意组合以及控制 CPU 内核和协同处理(例如 GPU)到特定应用程序的能力
  • 安全补丁和整个软件堆栈的自动和远程更新,具有回滚功能以防止堆砌
  • 自动连接到一个或多个后端(例如,云或本地)并轻松迁移到不同的后端
  • 安全的分布式防火墙,可根据策略通过网络安全地路由数据

安全和信任:安全问题是IoT edge发展的最大阻碍,因此,有必要使物联网边缘设备远离未经授权的访问。物联网边缘中的发现、身份验证和信任建立以及设备的匿名性和可追溯性在大规模环境中难以实现,需要一个额外的安全层来确保不同的物联网应用程序在设备中彼此隔离执行。

可靠性和容错性:随着系统中物联网设备的增加,边缘网络需要自我管理和自我配置的解决方案。IoT 应用程序必须能够从其生命周期中出现的任何问题中恢复过来。故障恢复能力和防止拒绝服务攻击是物联网边缘中现存的一些常见挑战。

可扩展性:传感器在物联网中的控制权不断增多。数据采集点的数量和采集的数据量正迅速增加。在智能城市和智能交通系统等许多用例中,常需要在物联网环境保持运行的情况下,短时间内安装数千个新传感器,这使得扩展物联网环境和数据管理的需求有所增加。此外,成本和其他参数(例如工作负载监控、存储容量、动态资源分配和数据传输速率)也对基于边缘的服务提出了挑战。

调度和负载均衡:边缘计算完全依赖负载均衡和调度机制来维护大型应用程序,其中数据在多个服务之间共享。为确保最大限度地利用计算资源,不仅需要以安全、可靠和灵活的方式、以较低的成本提供数据、软件和基础设施,还需要高效的调度和负载均衡机制。

Kubernetes 如何让边缘设备受益

可扩展性:扩展能力是许多物联网解决方案的主要关注点。为更多设备提供服务并实时处理数 TB 数据的能力需要能够独立进行水平或垂直扩展的基础设施。由于容器是轻量级的,所以与传统虚拟机相比,它们可以在几毫秒内创建。Kubernetes 的一个关键优势是它能够轻松地跨网络集群扩展服务、独立扩展容器并自动重启而不会对服务产生任何影响。

高可用性:对于处理关键业务的物联网解决方案,边缘设备需要可用且可靠。每个容器都分配有自己的 IP 地址,便于在容器之间平衡负载并在容器无法工作时重启应用程序。容器可以使用不同的存储系统,如 AWS、Google Cloud 或 Microsoft Azure,从而独立于云。

资源的高效利用:Kubernetes 由于高效利用资源,降低了物联网应用的托管成本。此外,它还在托管虚拟机之上提供了一个抽象层。因此,管理员可以专注于在最佳数量的虚拟机 (VM) 上部署服务,从而降低为 IoT 应用程序运行 VM 的总成本。

部署到物联网边缘:物联网的关键挑战之一是如何在不中断服务的情况下将软件更新部署到边缘设备。Kubernetes可以运行微服务,逐步推出对服务的更改。此外,Kubernetes 部署使用滚动更新策略推出 Pod 版本更新,通过在执行更新的任何给定时间保持某些功能启动和运行来实现零服务停机时间,只有在启用准备好处理流量的新部署版本的新 pod 之后,才会删除旧 pod。因此,可以使用简单的命令向上或水平扩展应用程序。

为 IoT 启用 DevOps:IoT 解决方案必须以零停机时间无缝更新给最终用户,以满足市场需求。Kubernetes 可帮助开发团队快速验证、推出和部署对 IoT 服务的更改。此外,Kubernetes 还支持不同的云提供商,例如 AWS、Google Cloud 和 Azure,甚至能作为内部部署软件得到支持,因此,将来很容易就能迁移到任何云服务。

基于这些特性,Kubernetes 已成为最常用的部署和管理编排工具之一。

结论

依赖物联网的行业正专注于在边缘设备中部署关键任务服务,以提高解决方案的响应能力并降低成本。基于 Kubernetes 的解决方案提供了一个通用平台,可用于在边缘部署物联网服务,是一种解决在不熟悉的环境中扩展应用程序挑战的方法。

Kubernetes 社区也正在努力推进和创新解决方案。持续的进步使得构建可扩展、可靠且可在分布式环境中部署的云原生物联网解决方案成为可能。

尽管物联网边缘解决方案的封装方式不同,但它们提供了相似的特性和丰富的功能,为每个物联网系统层提供了高可扩展性、可靠性、容错性和内置安全性。

在为你的边缘应用程序选择最佳 Kubernetes 解决方案时,必须考虑所有相关因素,例如应用程序的性质、成本、硬件兼容性、资源可用性和团队技能。

来源 | Capgemini Engineering

Edgenesis编译

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论