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
相关文章
|
弹性计算 容器 RDMA
在Kubernetes上使用RDMA
### RDMA RDMA(全称RemoteDirect Memory Access) 它为了解决网络传输中服务器端数据处理的延迟而产生。 它的原理是将待传输的数据从一台计算机的内存,直接传输到另一台计算机的内存,整个传输过程无需操作系统和协议栈的介入。
11518 0
|
边缘计算 Kubernetes Cloud Native
OpenYurt 成为 CNCF 孵化项⽬:加速扩展云原⽣的边界
经 CNCF 技术监督委员会投票一致同意,OpenYurt 正式成为 CNCF 孵化项目
|
Kubernetes 网络性能优化 调度
聊聊 K8S pod 的 QoS(Quality Of Service)
聊聊 K8S pod 的 QoS(Quality Of Service)
|
5月前
|
人工智能 API 数据安全/隐私保护
如何使用 LiteLLM 网关代理统一管理你的大模型
大模型使用混乱?费用失控、切换成本高、权限难管?LiteLLM 是轻量实用的大模型网关,统一 OpenAI 兼容接口,纳管 OpenAI、Qwen、本地 vLLM/Ollama 等多源模型。支持 Docker Compose 一键部署、虚拟 Key 权限控制、预算限额与全链路可观测性,业务代码零改造即可接入。
3467 8
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3698 75
|
前端开发 JavaScript Java
OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
本文介绍了 OpenTelemetry Demo 的整体架构,并演示了如何借助 Elastic Observability 实现链路追踪、日志与指标的统一观测。
421 3
OpenTelemetry × Elastic Observability 系列(一):整体架构介绍
|
12月前
|
存储 安全 数据安全/隐私保护
如何快速部署 ERPNext 多版本?
本文介绍了 ERPNext 多版本快速部署的几种方法,包括基于 Docker 的容器化部署、使用 websoft9 工具的一键部署以及虚拟机部署方案。每种方法适用于不同场景,如功能测试、非技术用户操作或高隔离需求环境。同时涵盖多版本使用的典型场景,如升级测试、团队并行使用和插件兼容性验证,并强调资源分配、数据备份、安全防护等注意事项,助力企业高效管理 ERPNext 多版本应用。
|
安全 虚拟化 Windows
Windows Server 2019 中文版、英文版下载 (2025 年 2 月更新)
Windows Server 2019 中文版、英文版下载 (2025 年 2 月更新)
9118 22
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
12123 3
|
网络协议 Linux
如何在 Linux 中禁用 IPv6?
【5月更文挑战第2天】
4021 8
如何在 Linux 中禁用 IPv6?

热门文章

最新文章