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



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

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

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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
运维 Kubernetes Cloud Native
OpenKruise v0.10.0 版本发布:新增应用弹性拓扑管理、应用防护等能力
阿里云开源的云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise,今天发布 v0.10.0 新版本,这也会是 OpenKruise v1.0 之前的最后一个 minor 版本。 本文将带你一览 v0.10.0 的新变化,其中新增的 WorkloadSpread、PodUnavailableBudget 等大颗粒特性后续还将有转文详细介绍其设计实现原理。
|
6月前
|
Serverless Cloud Native 关系型数据库
Serverless集群资源随业务负载动态弹降特性的重点评测
Serverless集群资源随业务负载动态弹降特性的重点评测
|
边缘计算 Kubernetes 监控
OpenYurt v0.7.0 版本解读:无侵入的跨网络域解决方案 Raven
新版本中重点发布 Raven 解决方案,该方案在对原生的容器网络方案无侵入的状态下,优雅的解决跨公网的云边,边边的 Pod 间通信问题,方便的满足了云边协同场景下对容器网络的诉求。同时在 OpenYurt v0.7.0 中,也完成对 EdgeX Foundry 的 LTS 版本(Jakarta)的支持,以及 K8s 版本 v1.22 的支持。
OpenYurt v0.7.0 版本解读:无侵入的跨网络域解决方案 Raven
|
存储 边缘计算 缓存
OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源
OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的、业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩展 Kubernetes 以无缝支持边缘计算场景。它提供了完整的 Kubernetes API 兼容性;支持所有 Kubernetes 工作负载、服务、运营商、CNI 插件和 CSI 插件;提供良好的节点自治能力和云边协同能力。OpenYurt 可以轻松部署在任何 Kubernetes 集群服务中,让强大的云原生能力扩展到边缘。
OpenYurt v0.4.0 新特性发布:高效地管理边缘存储资源
|
消息中间件 Dubbo Java
深度剖析线上应用节点流量隔离技术
深度剖析线上应用节点流量隔离技术
8621 0
|
存储 缓存 人工智能
基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发
基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发
39944 0
|
缓存 容灾 安全
如何构建一个流量无损的在线应用架构 | 专题尾篇
我们将这些年在每一个环节中的相应解决方案,以产品化的方式沉淀到企业级分布式应用服务(EDAS)中。EDAS 致力于解决在线应用的全流程流量无损,经过 6 年的精细打磨,已经在流量接入与流量服务两个关键位置为我们的客户提供了流量无损的关键能力,我们接下来的主要目标也是将这一能力贯穿应用的全流程,让您的应用默认能具备全流程的流量无损,极力保障商业能力的可持续性。
750 11
如何构建一个流量无损的在线应用架构 | 专题尾篇
|
JSON Kubernetes Cloud Native
OpenKruise v1.3:新增自定义 Pod Probe 探针能力与大规模集群性能显著提升
在版本 v1.3 中,OpenKruise 提供了新的 CRD 资源 PodProbeMarker,改善了大规模集群的一些性能问题,Advanced DaemonSet 支持镜像预热,以及 CloneSet、WorkloadSpread、Advanced CronJob、SidecarSet 一些新的特性。
|
边缘计算 运维 Kubernetes
更灵活的边缘云原生运维:OpenYurt 单元化部署新增 Patch 特性
在正文开始之前,我们先回顾一下单元化部署的概念和设计理念。在边缘计算场景下,计算节点具有很明显的地域分布属性,相同的应用可能需要部署在不同地域下的计算节点上。
更灵活的边缘云原生运维:OpenYurt 单元化部署新增 Patch 特性

热门文章

最新文章