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 网络性能优化 调度
聊聊 K8S pod 的 QoS(Quality Of Service)
聊聊 K8S pod 的 QoS(Quality Of Service)
|
缓存 Ubuntu Linux
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
7901 16
|
存储 数据采集 监控
性能测试报告模板
本文档为某某某项目性能测试报告,主要内容包括概述、测试环境、测试方法、测试工具等。主要的读者有性能测试脚本开发人员、性能测试执行人员、性能评估人员、开发人员、项目经理、用户代表等。
7428 1
性能测试报告模板
|
机器学习/深度学习 存储 缓存
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
介绍了机器学习中的几种集成学习算法,包括随机森林、AdaBoost、梯度提升决策树(GBDT)和XGBoost,解释了它们的概念、优缺点、算法过程以及系统设计。
3014 5
【机器学习】随机森林、AdaBoost、GBDT、XGBoost从零开始理解
|
存储 机器学习/深度学习 边缘计算
边缘计算:一文理解云边端协同架构中的高性能云计算、边缘计算、云边协同
边缘计算:一文理解云边端协同架构中的高性能云计算、边缘计算、云边协同
22108 0
边缘计算:一文理解云边端协同架构中的高性能云计算、边缘计算、云边协同
|
Linux Docker Windows
docker中使用绑定挂载(Bind mounts)
【10月更文挑战第9天】
1702 1
|
机器学习/深度学习 算法 atlas
RAG 2.0架构详解:构建端到端检索增强生成系统
RAG(检索增强生成)旨在通过提供额外上下文帮助大型语言模型(LLM)生成更精准的回答。现有的RAG系统由独立组件构成,效率不高。RAG 2.0提出了一种预训练、微调和对齐所有组件的集成方法,通过双重反向传播最大化性能。文章探讨了不同的检索策略,如TF-IDF、BM25和密集检索,并介绍了如SPLADE、DRAGON等先进算法。目前的挑战包括创建可训练的检索器和优化检索-生成流程。研究表明,端到端训练的RAG可能提供最佳性能,但资源需求高。未来研究需关注检索器的上下文化和与LLM的协同优化。
2595 1
|
机器学习/深度学习 数据采集 自然语言处理
经典机器学习算法——Pagerank算法(二)
PageRank 算法由 Google 创始人 Larry Page 在斯坦福读大学时提出,又称 PR——佩奇排名。主要针对网页进行排名,计算网站的重要性,优化搜索引擎的搜索结果。PR 值是表示其重要性的因子

热门文章

最新文章