北京时间 1 月 30 号发布的 OpenYurt v1.2.0 版本,社区呼声最高的几大特性终于落地,OpenYurt 的特点更加鲜明,主要特点包括:Kubernetes 无侵入,云边端全协同,可编程的资源访问控制,以及声明式云原生设备管理。
v1.2 版本聚焦在节点池治理,重点打造 OpenYurt 系统的差异化技术竞争力,主要特性有降低云边通信的流量成本,边缘自治能力增强,更丝滑的跨地域通信能力等。
在云边协同场景下,边缘通过公网和云端连接,当集群中部署了大量的业务 Pod 和微服务系统(引入大量 Service 和 Endpointslices),边缘节点和云端之间需要消耗大量带宽,给用户带来极大的公网流量成本压力。
社区对降低云边通信流量一直有比较强的诉求,如何在不侵入修改 Kubernetes 的基础上满足需求,首先大家比较容易考虑到的方案是在节点池内增加一个 sync 组件,实时同步云端的数据,然后再分发给节点池中的各个组件。但是这个方案落地将面临不小的挑战,首先数据访问请求都是边缘主动向云端发起的,sync 如何拦截这些请求并分发数据呢?同时如果 sync 组件故障,边缘的请求将面临中断,而保障 sync 组件的高可用会非常棘手。
OpenYurt 社区首创基于 pool-coordinator+YurtHub 的云边流量复用机制,既与原生 Kubernetes 的云边通信链路无缝融合,又优雅的保障了通信链路的高可用(YurtHub Leader 选举),实现云边通信成本的消减。
在节点池内,节点从云端获取的数据,可以分为两种类型:
同时通过测试[1]发现,真正占用云边带宽的数据是 pool scope data。OpenYurt v1.2 中通过在节点池中复用 pool scope data,从而大幅降低云边的数据通信量。如下图:
通过 Pool-Coordinator 和 Yurthub 的协同,单一节点池内云边只有一份 pool scope data 通信数据,从而大幅降低云边的通信数据量,相比原生 Kubernetes 云端出口流量峰值降低 90%。
另外带来一个有意思的能力,通过 Endpointslices 的流量复用,即使边缘节点与云端网络断开,仍然可以实时感知集群的服务拓扑状况。
在云边协同场景下,边缘自治能力可以保障边缘业务持续提供服务。边缘自治能力既包括在边缘侧提供数据缓存,解决云边网络断连状态下节点重启时业务的恢复问题,同时也包括管控侧(云端控制器)对 Pod 驱逐策略的增强。
在原生 Kubernetes 中,边缘节点心跳一定时间没有上报时,云端控制器将对节点上 Pod 进行驱逐(删除并在正常节点上重建)。
云边协同场景下,边缘业务有不一样的需求。业务期待云边网络断连造成心跳无法上报时(此时节点本身正常),业务 Pod 可以保持(不发生驱逐),仅节点故障时才对 Pod 进行迁移重建。
比云边公网连接的复杂网络情况,同一个节点池内的节点处在一个局域网,网络连接状况良好。业界常用的方案是边缘节点间相互网络探测,构建一个分布式的节点健康状态检测机制。但是该方案中的网络探测会产生不小的东西流量,同时每个节点也需要增加一定的计算,随着节点池规模增大,检测效果会面临一定的挑战。
OpenYurt v1.2 版本首创基于 pool-coordinator+YurtHub 的中心式心跳代理机制,既可以减少节点池内的东西向通信流量,又降低了整体算力需求。同时也提供云边网络断连时 Pod 保持的能力。如下图:
通过 Pool-Coordinator 和 YurtHub 协同实现的心跳代理机制,成功保障了节点在云边网络断连状态下,心跳仍可继续上报到云端,从而保证节点上业务 Pod 不被驱逐。同时心跳被代理上报的节点,也会被实时加上特殊的 taints,用于限制管控调度新 Pod 到该节点。
OpenYurt 社区的 Raven 项目已经演进到 v0.3 版本,主要提供跨地域的 3 层通信能力。相比 Yurt-Tunnel 提供的云边隧道仅支持云到边的 7 层流量转发,Raven 可以提供更通用的跨地域通信能力(云边互通/边边互通),如下图:
Raven 方案和原生 CNI 容器网络方案无缝兼容,跨地域的流量转发对应用本身是无感知状态,因此在云边/边边的跨地域通信中,OpenYurt 中应用互访可以保持原生 Kubernetes 中的一致使用体验。从 OpenYurt v1.2 开始,我们推荐使用 Raven 来代替 YurtTunnel。
OpenYurt v1.2 版本能够顺利发布,这里再次感谢来自 Intel,美团,阿里云,浙大,同济,索尼,浪潮,京东等数十位同学的大力贡献。
目前 OpenYurt v1.3 版本的开发正在稳步推进,欢迎有兴趣的同学来参与共建,共同探索一个稳定,可靠的无侵入云原生边缘计算平台的事实标准。各 SIG RoadMap 如下:
[1] 测试
https://openyurt.io/zh/docs/test-report/yurthub-performance-test/
[2] 1049
https://www.yuque.com/r/goto?url=https%3A%2F%2Fgithub.com%2Fopenyurtio%2Fopenyurt%2Fpull%2F1049
[3] 1065
https://www.yuque.com/r/goto?url=https%3A%2F%2Fgithub.com%2Fopenyurtio%2Fopenyurt%2Fpull%2F1065
[4] 1158
https://www.yuque.com/r/goto?url=https%3A%2F%2Fgithub.com%2Fopenyurtio%2Fopenyurt%2Fpull%2F1158
[5] 1066
https://github.com/openyurtio/openyurt/pull/1066
本文作者:
何淋波: 阿里云技术专家
陈绍强: Intel 资深软件架构师
俞林: Intel 高级软件工程师
原文链接
本文为阿里云原创内容,未经允许不得转载。