容器编配引擎具有作为边缘解决方案的潜力,但是在它成为边缘解决方案之前还有很多问题需要解决。
到目前为止,您可能已经听说了Kubernetes如何在传统的本地部署和云环境中简化应用程序的大规模部署。但是,将中央数据中心与托管在离终端用户更近的边缘位置的工作负载结合起来的边缘架构又如何呢?Kubernetes也能支撑一个边缘计算平台吗?
答案是有可能。尽管Kubernetes作为边缘计算解决方案有潜力,但是Kubernetes的开发人员和用户需要克服一些障碍,才能让K8s真正为边缘做好准备。
Kubernetes如何帮助边缘计算平台
一些观察家认为Kubernetes已经为在边缘环境中托管应用程序做好了准备。例如,Canonical的Ammar Naqvi写道Kubernetes是“边缘计算的关键组成部分”,云原生基金会(Cloud Native computing Foundation)也将Kubernetes推广为边缘解决方案。它还赞助KubeEdge,这是一个完整的开源平台,致力于基于Kubernetes的边缘部署,去年11月成为CNCF的孵化项目。
当然,这些组织有点偏颇。Canonical和CNCF对Kubernetes进行了深入的投资,如果Kubernetes作为构建边缘计算平台的解决方案受到欢迎,他们将获益匪浅。
尽管如此,他们还是对Kubernetes为何天生适合边缘提出了一些好的意见。在他们撰写本文时,Kubernetes提供了一个通用控制平面,可以与任何类型的基础边缘基础架构一起使用,这意味着它将简化跨各种边缘环境的工作负载的部署和管理。Kubernetes在平衡流量和最小化延迟方面也很出色,这是边缘工作负载的优先事项。而且,通过充当DevOps CI / CD管道的部署环境,Kubernetes将使开发人员可以轻松地对边缘应用程序进行持续更新。
除了对推广Kubernetes有明确兴趣的供应商和开发人员之外,有证据表明,更中立的团体也将Kubernetes视为未来边缘计算平台的重要组成部分。在一份基于对云计算和数据中心行业十多位思想领袖和供应商的采访的报告中,Omdia发现,目前有超过一半的人看到Kubernetes被部署用于边缘工作负载。
据Omdia的报告称:“Kubernetes将成为一种能够管理从云到边缘的工作负载的技术,它提供了一个通用的应用程序管理平台。”
简而言之,我们有充分的理由相信Kubernetes在未来几年将成为边缘计算平台越来越重要的一部分。
Kubernetes边缘挑战
然而,要使Kubernetes成为管理部署在边缘的应用程序的真正无缝解决方案,开发人员需要解决几个难题。
可能最大的问题是确保中央数据中心和边缘位置之间的低延迟数据传输。在许多方面,快速移动数据是边缘计算的最大挑战;应用程序编排是次要问题。而Kubernetes本身并没有优化数据传输。数据结构确实如此,但Kubernetes并没有以特定的方式与之集成。
为了确保在基于Kubernetes的边缘环境中进行低延迟的数据移动,那么构建边缘计算平台的开发人员将需要将Kubernetes与数据结构解决方案相结合的部署变得更容易。他们可能还需要改进Kubernetes处理内部数据移动的方式,例如,让Kubernetes更容易知道哪些内部流量需要优先处理。目前,Kubernetes在解决如何平衡来自外部端点的传入流量方面做得很好,但不太擅长管理以每毫秒计数的内部流量流。 类似地,Kubernetes将从更强的工作负载安排控制中受益。Kubernetes使管理员能够将应用程序分配给各个节点,当所有节点都在一个数据中心内运行时,这种方法效果很好。
但是,如果节点分布在多个边缘位置,并且可能分布在一个中央数据中心,该怎么办呢?在这种情况下,您可能希望有能力去管理有独立边缘位置承载的应用程序,以及平衡它们之间流量。这在今天的Kubernetes中是很复杂的,除非你在每个边缘位置只有一个节点,这是不可能的。那么,Kubernetes需要的是一个特性,允许管理员根据不同地理位置的节点池来定义工作负载的放置方式和优先级,而不仅仅是运行在同一物理位置的单个节点。
多集群管理仍然是一个挑战。最初,Kubernetes的设计或多或少假设每个组织将运行一个集群,并可能划分为多个名称空间。这些年来,情况发生了变化,大多数Kubernetes供应商现在都支持多集群管理。但是它们做得并不好,跨多个集群管理工作负载仍然是Kubernetes开发人员的次要考虑事项。 这对于边缘计算平台来说是个问题,组织可能会选择在每个边缘位置运行单独的集群,以隔离工作负载并简化真正大规模环境的管理。
结论
Kubernetes有很多可以作为边缘计算平台的基础,但在这方面也有一些明显的缺点。所以一些架构师认为Kubernetes不适合某些可能部署在边缘的工作负载,比如集装箱化电信应用程序。
另一方面,只要付出足够的开发努力,Kubernetes作为边缘计算平台基础所面临的挑战是可以解决的。我们应该问的真正问题,也许不是Kubernetes是否能够在边缘工作(目前,答案是它只是作为一种边缘解决方案),而是开发人员是否愿意投入所需的努力,使其成为一个成熟的边缘计算平台。