本文主要介绍谐云在边缘计算-分布式数据中心子场景下,基于开源框架KubeEdge开展云边协同落地过程中的实践经验。
基于KubeEdge的云边协同架构概览
至上而下来看,云边协同平台向上接入谐云观云台,以提供同原生K8S一致的边缘资源运维管理体验。向下通过KubeEdge云上组件CloudCore,代理边缘节点接入kubernetes控制面,纳管边缘数据中心计算资源。纵向适配支持K8S原生的可运维性系统-监控、日志、镜像。
落地实践与KubeEdge改造赋能
- 节点网络与容器网络
在设计节点网络能力时,首先需要考虑容器网络能力,即容器网络需要支持到什么程度。原生Kubernetes网络中,每个Pod都有一个独立的IP地址,而且假定所有的Pod都可以在一个直接连通的、扁平的网络空间中。而在边缘场景下,打通云中心与边缘数据中心的容器网络平面,开销大,性能低。团队认为,边缘数据中心部署的服务与云边间的访问链路必然是有限而特定的,在需求上,也小于边缘数据中心内部的Pod互访需求。对此,我们假定容器网络各自收敛于每个数据中心,并使用高可用公网网关+Ingress暴露边缘服务。
另一个决定容器网络平面范围的因素是节点网络,容器网络基于节点网络之上,对于100+广泛分布全国的数据中心,打通跨地域的节点网络,无论是网络专线或VPN都是开销巨大的。因此,我们做了以下假定:
1. 各数据中心(云+边缘)内部节点网络可靠且联通
2. 数据中心间节点网络不可靠,不直连
3. 数据中心间的互访需求依赖各数据中心的公网网关。
- 平台关键组件高可用及弹性节点接入能力
在KubeEdge V1.3之前的版本中,KubeEdge云端组件的可用性依赖于Kubernetes Deployment的自动恢复能力,但极端情况下需要较长的时间进行故障恢复。1.3版本支持了云端组件CloudCore的高可用部署,采用和K8S Controller Manager和scheduler一致的主备高可用原理,当CloudCore实例发生故障时,可以快速切换,最大限度减小云端组件的故障影响。此功能由谐云团队实现并贡献至社区。
在集群中,边缘节点数量过大可能使KubeEdge的CloudCore组件产生性能瓶颈问题,对此我们团队认为可以横向部署多套KubeEdge,使每个KubeEdge扩展分管不同区域的边缘节点,各区域的边缘节点接入所属区域的高可用KubeEdge。目前KubeEdge还不支持多套并行部署,多套KubeEdge的运行状态数据在ETCD中会杂糅。谐云团队正在开发并计划贡献至社区,以分离各套KubeEdge的运行状态数据。
边缘节点的可运维性
- 自动化管理(向上接入谐云SkyView观云台)
SkyView观云台是谐云针对传统IT目前存在的问题,推出的基于容器云技术的运维解决方案。无缝融合容器与计算、存储及网络资源,采用DevOps思维重新定义企业开发、运维及运行时环境标准,打造容器云时代高效的IT数据中心。主要功能有:监控立方、敏捷开发工具链集成、多租户资源管理、应用层服务组件。立体资源管理从基础设施层、系统组件层、容器化应用层全方位监控计算资源,实现细粒度访问控制。具有高效运维、快速扩展高可用、极佳用户体验的优势。由于KubeEdge是基于Kubernetes的扩展,所以可以无缝接入观云台,实现边缘数据中心计算资源的便捷纳管。
镜像(基于公有云的镜像仓库服务)
云边数据中心跨公网,多地域,除了自己搭建私有镜像仓库,极适合使用云厂商的容器镜像服务。
公有云厂商的容器镜像服务是一种支持容器镜像全生命周期管理的服务,提供简单易用、安全可靠的镜像管理功能,简化了Registry的搭建运维工作,支持多地域的镜像托管。
监控
在1.3版本中,KubeEdge提供了边缘节点的监控接口,用户可以在边缘获取本节点和容器相关监控信息,实现与第三方监控系统的集成对接。该特性为默认开启,特殊情况,用户也可以通过EnableMetrics配置项关闭内置监控模块。谐云团队基于此点对KubeEdge做了局部优化并贡献到了社区,现在支持通过隧道在云端汇聚边缘节点和应用容器的监控信息,进而提供给MetricServer与Prometheus。同时也对MetricServer做了局部优化并贡献到了k8s社区,以自动区分云上Kubelet节点和边缘KubeEdge节点。
Kubectl log
在大多数边缘计算场景中,边缘节点处于私有网络环境,无法直接从中心云拉取运行在边缘节点上的Pod日志,这给应用的运维调试带来很多不便。KubeEdge v1.3版本内置了流数据通道,用户可以很方便地通过kubectl logs命令从云端获取边缘应用容器日志,无需额外搭建部署VPN服务器解决私网穿透等复杂问题。
边缘计算新浪潮
边缘计算领域方兴未艾,云边协同平台本质上是一个跨地域的资源纳管、算力调度、应用下发解决方案,能将中心容器云的弹性计算能力下沉至边缘,提高运维效率,减小运维成本。与云计算不同,除了以CPU、内存、硬盘存储为代表的传统计算资源,地理区域亦成了应用调度需要考虑的一类新型资源,通常某组应用和某个区域节点强关联,以满足应用的低时延需求,数据的安全性需求,网络的低占用需求。
同时,为尽可能的提高边缘计算中心的算力以及节省成本,计算核心的架构也不再仅限于CPU或GPU,也有可能为FPGA和ASIC,为了完成特定任务,节点可能还需连接一些专有设备。计算核心越特异,外挂设备种类越不同,节点同应用容器的耦合程度也越深。
随着互联网终端及边缘计算层之间的界限越来越模糊,算力进一步往边缘扩展也将是必然的发展趋势,未来边缘计算也一定会与云计算相互协同,大力促进各大行业数字化领域的转型。对于边缘计算领域的发展,谐云也正在积极探索其基础技术与落地场景,欢迎共同探讨。