OpenYurt v1.6正式发布 | 提供节点级别的流量复用能力

简介: 本次发布的v1.6版本主要特性包括:节点级别的流量复用能力、增强的边缘自治能力等。

【阅读原文】戳:OpenYurt v1.6正式发布 | 提供节点级别的流量复用能力

北京时间1月8日发布了OpenYurt v1.6版本。OpenYurt作为边缘云原生领域的开源项目,致力于解决分散计算资源及业务管理难的问题。OpenYurt采用云边端一体化的架构,基于Kubernetes项目,采用非侵入的方式提供了边缘自治、跨地域通信、多地域资源与应用管理、设备管理等核心能力。本次发布的v1.6版本主要特性包括:节点级别的流量复用能力、增强的边缘自治能力等。

 

 

 

 

节点级别的流量复用能力

 

 

 

在OpenYurt集群中,管控组件部署在云端,边缘节点通常通过公网与云端的管控组件交互,list/watch相关的资源(比如Kubelet、Flannel、Kube-proxy以及CoreDNS等组件,在每一个边缘节点上都需要部署一个副本,并且这些组件会list/watch集群中的services、endpointslices等资源)。随着集群的规模以及资源的增大,给云边通信流量带来比较大的压力,同时需要花费更多的流量成本。为了缓解这个问题,我们在YurtHub中提供了流量复用模块,该模块针对特定的资源,主动从Kube-apiserver获取这些资源并缓存这些资源。当客户端经过YurtHub请求这些资源时,YurtHub不再将请求代理到Kube-apiserver,而是从缓存里获取数据返回给客户端,从而达到流量服用的目的。该能力在大规模Pods以及Services部署场景,可降低50%左右的云边通信流量。

 

下图展示了各个模块之间的请求转发流程:

 

 

1)MultiPlexer Cache请求Kube-apiserver list/watch需要复用的资源,并缓存到内存中;

2)客户端请求YurtHub Server获取相关资源;

3)YurtHub判断资源是否为复用的资源:

 

如果是复用资源,则从本地MultiPlexer Cache中获取数据,从而减少云边通行流量;

 

如果不是复用资源,则从Kube-apiserver获取数据。

 

 

 

 

增强的边缘自治能力

 

 

 

OpenYurt已经提供了强大的边缘自治功能,确保边缘节点上的应用程序即使在云边缘网络断开连接时也能继续运行。但是,当前的边缘自治功能仍有几个方面可以改进:

 

一旦节点使用自治的Annotation,云控制器就不会自动驱逐 Pod,无论断开连接是由于云边缘网络问题还是节点故障导致的,但用户希望在节点故障期间能自动驱逐Pod。

 

自治能力需要先关闭Kube-Controller-Manager组件中的NodeLifeCycle控制器,无法直接在托管 Kubernetes 环境中使用。

 

在v1.6版本中,我们对自治的能力进做了进一步的增强。这些增强包括:

 

新增节点自治的Annotation (node.openyurt.io/autonomy-duration),允许用户指定节点的自治时长。如果未收到心跳报告的时间小于这个指定的时长,系统会认为是网络断开导致的,不会驱逐该Pod。如果超过这个时长,系统会认为是节点故障,会执行Pod驱逐。

 

Kube-Controller-Manager中不再关闭NodeLifeCycle控制器,Yurt-Manager中新增一个Endpoints/EndpointSlices的WebHook,用来保证在自治期间,Pod不会从Services的后端摘除。其中Webhook的工作流程如下图所示:

 

 

1)Pod NotReady触发endpoints/endpointslices controller更新对应的资源,设置相关的地址为NotReady;

2)Kube-apiserver调用webhook;

3)Webhook依据Pod对应的节点是否配置了自治,来修改对应地址的状态:

- 如果设置了自治,则对应的地址状态调整为Ready;

- 如果没有设置自治,则不做修改。

4)Webhook返回调整后的资源;

5)Kube-apiserver将资源写入etcd。

 

 

 

 

其它更新

 

 

 

你可以通过Github release[1]页面,来查看更多地改动以及它们的作者与提交记录。

 

 

 

 

社区参与

 

 

 

目前OpenYurt v1.6版本的所有能力也已经上线到ACK Edge[2]产品中,欢迎有需求的同学咨询和试用。

 

同时,社区的v1.7版本正在开发推进中,主要聚焦在节点池维度的流量复用以及采用OpenYurt在本地部署Kubernetes集群等能力上。非常欢迎你通过Github[3]/钉钉(搜索群ID:12640034121)等方式加入我们来参与OpenYurt开源社区。也欢迎在我们的社区周会[4]上分享你的声音,或通过加入社区 Slack channel[5]参与讨论。

 

 

相关链接:

 

[1] Github release

https://github.com/openyurtio/openyurt/releases

 

[2] ACK Edge

https://help.aliyun.com/zh/ack/ack-edge/product-overview/ack-edge-overview

 

[3] Github issue

https://github.com/openyurtio/openyurt/issues

 

[4] 社区周会

https://meeting.dingtalk.com/

 

[5] Slack channel

https://openyurt.slack.com/unsupported-geo



我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Kubernetes Linux API
[没接触过kubevirt?]15分钟快速入门kubevirt
什么是kubevirt? kubevirt是一个容器方式运行虚拟机的项目。`kubevirt`是附加`kubernetes`集群上的,它是通过 `CustomResourceDefinition(CRD)`部署到`Kubernetes API`变成资源对象。使用方式类似创建`deploy、pod`......这些资源清单。
5798 0
[没接触过kubevirt?]15分钟快速入门kubevirt
|
弹性计算 容器 RDMA
在Kubernetes上使用RDMA
### RDMA RDMA(全称RemoteDirect Memory Access) 它为了解决网络传输中服务器端数据处理的延迟而产生。 它的原理是将待传输的数据从一台计算机的内存,直接传输到另一台计算机的内存,整个传输过程无需操作系统和协议栈的介入。
11058 0
|
7月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
2209 75
|
9月前
|
存储 缓存 人工智能
Mooncake 最新进展:SGLang 和 LMCache 基于 Mooncake 实现高效 PD 分离框架
Mooncake 的架构设计兼具高性能和灵活性,为未来的扩展性和生态建设奠定了坚实基础。
|
10月前
|
存储 Kubernetes 异构计算
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
|
11月前
|
存储 人工智能 固态存储
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
3FS是DeepSeek开源的高性能分布式文件系统,专为AI训练和推理任务设计,提供高达6.6 TiB/s的读取吞吐量,支持强一致性保障和通用文件接口,优化AI工作负载。
1578 2
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
|
12月前
|
边缘计算 调度 对象存储
部署DeepSeek但IDC GPU不足,阿里云ACK Edge虚拟节点来帮忙
介绍如何使用ACK Edge与虚拟节点满足DeepSeek部署的弹性需求。
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
4567 11
|
存储
cephFS高可用分布式文件系统部署指南
关于如何部署高可用的cephFS分布式文件系统,包括集群的搭建、验证高可用性以及实现两主一从架构的详细指南。
1193 10
|
存储 分布式计算 Kubernetes
JuiceFS-开源分布式文件系统入门(一篇就够了)
讲解JuiceFS的一些概念、架构以及实操的案例
8441 0
JuiceFS-开源分布式文件系统入门(一篇就够了)