KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力

简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化。

头图.png

联合作者 | 
Yan Xun,阿里云 EDAS 团队高级工程师
Andy Shi,阿里云开发者倡导者
Tom Kerkhove,Codit 容器化业务负责人兼 Azure 架构师、KEDA 维护者、CNCF 大使
来源 | 阿里巴巴云原生公众号

当你在伸缩 Kubernetes 时,你会想到一些领域,但是如果你是 Kubernetes 的新手,你可能会觉得有些难以应付。

在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)​在 KEDA 上完全标准化。

伸缩 Kubernetes

当管理 Kubernetes 集群和应用程序时,你需要仔细监视各种事情,比如:

  • 集群容量——我们是否有足够的可用资源来运行我们的工作负载?
  • 应用程序工作负载——应用程序有足够的可用资源吗?它能跟上待完成的工作吗?(像队列深度)

为了实现自动化,你通常会设置警报以获得通知,甚至使用自动伸缩。Kubernetes 是一个很好的平台,它可以帮助你实现这个即时可用的功能。

通过使用 Cluster Autoscaler 组件可以轻松地伸缩集群,该组件将监视集群,以发现由于资源短缺而无法调度的 pod,并开始相应地添加/删除节点。

因为 Cluster Autoscaler 只在 pod 调度过度时才会启动,所以你可能会有一段时间间隔,在此期间你的工作负载没有启动和运行。

Virtual Kubelet​(一个 CNCF 沙箱项目)是一个巨大的帮助,它允许你向 Kubernetes 集群添加一个“虚拟节点”,pod 可以在其上调度。

1.png

通过这样做,平台供应商​(如阿里巴巴、Azure、HashiCorp 和其他)允许你将挂起的 pod 溢出到集群之外,直到它提供所需的集群容量来缓解这个问题。

除了伸缩集群,Kubernetes 还允许你轻松地伸缩应用程序:

  • Horizontal Pod Autoscaler(HPA​)允许你添加/删除更多的 Pod 到你的工作负载中,以 scale in/out(添加或删除副本)。
  • Vertical Pod Autoscaler(VPA​)允许你添加/删除资源到你的 Pod 以 scale up/down(添加或删除 CPU 或内存)。

所有这些为你伸缩应用程序提供了一个很好的起点。

HPA 的局限性

虽然 HPA 是一个很好的起点,但它主要关注 pod 本身的指标,允许你基于 CPU 和内存伸缩它。也就是说,你可以完全配置它应该如何自动缩放,这使它强大。

虽然这对于某些工作负载来说是理想的,但你通常想要基于其他地方如 Prometheus、Kafka、云供应商或其他事件上的指标进行伸缩。

多亏了外部指标支持​,用户可以安装指标适配器,从外部服务中提供各种指标,并通过使用指标服务器对它们进行自动伸缩。

但是,有一点需要注意,你只能在集群中运行一个指标服务器,这意味着你必须选择自定义指标的来源。

2.jpg

你可以使用 Prometheus 和工具,比如 Promitor,从其他提供商那里获取你的指标,并将其作为单一的真相来源来进行伸缩,但这需要大量的管道(plumbing)和工作来进行扩展。

肯定有更简单的方法……是的,使用 Kubernetes Event-Driven Autoscaling(KEDA)!

KEDA 是什么?

Kubernetes Event-Driven Autoscaling(KEDA)是一个用于 Kubernetes 的单用途事件驱动自动伸缩器,可以很容易地将其添加到 Kubernetes 集群中以伸缩应用程序。

它的目标是使应用程序自动扩展非常简单,并通过支持伸缩到零(scale-to-zero)来优化成本。

KEDA 去掉了所有的伸缩基础设施,并为你管理一切,允许你在 30 多个系统上进行伸缩或使用自己的伸缩器进行扩展。

用户只需要创建 ScaledObject 或 ScaledJob 来定义你想要伸缩的对象和你想要使用的触发器;KEDA 会处理剩下的一切!

3.jpg

你可以伸缩任何东西;即使它是你正在使用的另一个工具的 CRD,只要它实现/scale 子资源。

那么,KEDA 重新发明轮子了吗?不!相反,它通过在底层使用 HPA 来扩展 Kubernetes,HPA 使用我们的外部指标,这些指标由我们自己的指标适配器提供,该适配器取代了所有其他适配器。

4.png

去年,KEDA 加入了 CNCF,作为 CNCF 沙箱项目,计划今年晚些时候提案升级到孵化阶段。

阿里巴巴基于 OAM/KubeVela 和 KEDA 的实践

企业分布式应用服务(EDAS)作为阿里云上的主要企业 PaaS 产品,多年来以巨大的规模服务于公有云上的无数开发者。从架构的角度来看,EDAS 是与 KubeVela 项目​一起构建的。其总体架构如下图所示。

5.png

在生产上,EDAS 在阿里云上集成了 ARMS 监控服务,提供监控和应用的细粒度指标。EDAS 团队在 KEDA 项目中添加了一个 ARMS Scaler 来执行自动缩放。他们还添加了一些特性,并修复了 KEDA v1 版本中的一些 bug。包括:

  • 当有多个触发器时,这些值将被求和,而不是作为单独的值留下。
  • 当创建 KEDA HPA 时,名称的长度将被限制为 63 个字符,以避免触发 DNS 投诉。
  • 不能禁用触发器,这可能会在生产中引起麻烦。

EDAS 团队正在积极地将这些修复程序发送给上游 KEDA,尽管其中一些已经添加到 V2 版本中。

为什么阿里云将 KEDA 标准化为其应用的自动伸缩器

当涉及到自动扩展特性时,EDAS 最初使用上游 Kubernetes HPA 的 CPU 和内存作为两个指标。然而,随着用户群的增长和需求的多样化,EDAS 团队很快发现了上游 HPA 的局限性:

  1. 对定制指标的支持有限,特别是对应用程序级细粒度指标的支持。上游 HPA 主要关注容器级指标,比如 CPU 和内存,这些指标对于应用程序来说太粗糙了。反映应用程序负载的指标(如 RT 和 QPS)不受现成支持。是的,HPA 可以扩展。然而,当涉及到应用程序级指标时,这种能力是有限的。EDAS 团队在尝试引入细粒度的应用程序级指标时,经常被迫分叉代码。
  2. 不支持伸缩到零。当他们的微服务没有被使用时,许多用户都有将规模伸缩到零的需求。这一需求不仅限于 FaaS/无服务器工作负载。它为所有用户节省成本和资源。目前,上游 HPA 不支持此功能。
  3. 不支持预定的伸缩。EDAS 用户的另一个强烈需求是预定的伸缩能力。同样,上游 HPA 不提供此功能,EDAS 团队需要寻找非供应商锁定的替代方案。

基于这些需求,EDAS 团队开始规划 EDAS 自动伸缩特性的新版本。与此同时,EDAS 在 2020 年初引入了 OAM,对其底层核心组件进行了彻底改革。OAM 为 EDAS 提供了标准化的、可插入的应用程序定义,以取代其内部的 Kubernetes 应用程序 CRD。该模型的可扩展性使 EDAS 能够轻松地与 Kubernetes 社区的任何新功能集成。在这种情况下,EDAS 团队试图将对 EDAS 新的自动伸缩特性的需求与 OAM 自动伸缩特性的标准实现相结合。

基于用例,EDAS 团队总结了三个标准:

  1. 自动伸缩特性应该将自己呈现为一个简单的原子功能,而不需要附加任何复杂的解决方案。
  2. 指标应该是可插入的,因此 EDAS 团队可以对其进行定制,并在其之上构建以支持各种需求。
  3. 它需要开箱即用地支持伸缩到零。

经过详细的评估,EDAS 团队选择了 KEDA 项目,该项目是由微软和红帽开源的,已捐赠给 CNCF。KEDA 默认提供了几个有用的 Scaler,并开箱即用地支持伸缩到零。它为应用程序提供了细粒度的自动伸缩。它具有 Scalar 和 Metric 适配器的概念,支持强大的插件架构,同时提供统一的 API 层。最重要的是,KEDA 的设计只关注自动伸缩,这样就可以轻松地将其集成为 OAM 特性。总的来说,KEDA 非常适合 EDAS。

展望未来

下一步,阿里巴巴正在积极推动由 AIOps 驱动的 KEDA 特性,目标是为其自动伸缩行为带来智能决策。这将从本质上实现基于专家系统和历史数据分析的自动伸缩决策,利用阿里巴巴的 KEDA 组件中新实现的应用 QoS 触发器和数据库度量触发器等。因此,我们期待一个更强大、更智能、更稳定的基于 KEDA 的自动伸缩功能将很快在 KEDA 中发布。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql行转列函数_一个小知识点-Hive行转列实现Pivot

前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。传统数据库方式这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方…

安全之心:一文读懂可信计算

简介: 信 or 不信,这是个问题 可信计算 TC (Trusted Computing) 业界新宠,越来越被高频提到 本质是创造可信执行环境的芯片级安全防护方案 然而,江湖流传 TA 的传说 却鲜少有人见过真身 阿里云作为亚太区最…

国内顶级AI赛事再启程,第三届“中国人工智能大赛”聚焦算法治理、深度伪造与网络安全

本届大赛赛题分为算法治理、深度伪造和网络安全三大方向的七大赛题,分别是:过滤算法鲁棒性、深度伪造视频检测、深度伪造视频生成方法识别、基于人工智能的音视频合成比赛、说话人无关的音频深度伪造检测识别、说话人相关的音频深度伪造检测识别、Webshe…

看阿里云如何用云上技术创新,帮助哈啰单车实现智能数据收治

简介: 客户通过把日志数据迁移到SLS,替代原有的kafka、ES、ClickHouse,累积节省成本达到30%,同时满足了稳定性、扩展性需求,以及对日志查询分析的需求。 更多存储标杆案例 欢迎点击下方链接查看 阿里云存储标杆案例样…

快进键启动,一文带你了解云原生时代容器安全

简介: 分享阿里云容器安全的治理能力与经验,致力保护生产环境安全。 都说国内需求离容器化还远,更谈不上关注安全,喊的热闹而落地困难。但总得有些声音面向未来向前看。 在2020年Forrester IaaS安全评测中,阿里云容器…

Serverless:这真的是未来吗?(一)

简介: 希望这些博客文章能帮助您在所有相关人员中展开讨论,就最佳业务方案达成一致。该课程可能涉及无服务器,也可能不涉及。在这第一篇文章中,我们将考虑在讨论无服务器时最常见的几个问题。在第二篇文章中,我们将研究…

无限级分类限定层级_王者荣耀:s20战令该不该买?战令限定星元皮肤实测真香...

王者荣耀:s20战令该不该买?战令限定星元皮肤实测真香Hello大家好,我是游戏鲪,很高兴见到大家。如今这个赛季的战令系统早已结束,新赛季也即将到来。许多小伙伴都在憧憬下个赛季的战令。关于s20赛季的战令奖励&#xff…

光进铜退下的“更高”与“更低”,锐捷发布企业极简以太全光网解决方案

全新一代企业网络建设中,以太全光网将满足高带宽、简运维、降成本的要求。 头图 | 付费下载于视觉中国 出品 | CSDN云计算 近日,锐捷网络正式对外发布企业极简以太全光网解决方案。方案针对仓储物流、电子信息、工业制造、地产酒店等在行业客户在园区网…

物联网海量时序数据存储有哪些挑战?

简介: 随着 IoT 技术的快速发展,物联网设备产生的数据呈爆炸式增长,数据的总量(Volume)、数据类型越来越多(Variety)、访问速度要求越来越快(Velocity)、对数据价值&…

什么是 RedCap?一文详解!

作者 | 小枣君来源 | 鲜枣课堂随着3GPP R17版本的不断推进,一个新的名词逐渐开始热门起来,那就是RedCap。究竟什么是RedCap?为什么要引入它?它和现在的5G有什么区别?且看本文的深入解析……█ 什么是RedCapRedCap&…

被解救的代码 - 代码即服务时代来了!

简介: 人类对自由的追求从未停止,我们用战斗获得民族自由,我们用代码获得双手自由,同时代码作为服务器的奴隶,也开始蠢蠢欲动,革命已经开始,当代码翻身做主,作为开发者的我们又该如何…

配置审计(Config)配合开启OSS防盗链功能

简介: 本文作者:紫极zj 本文将主要介绍利用【配置审计】功能,如何快速发现企业上云过程中,针对未配置防盗链的 OSS Bucket 定位及修复案例。 前言 配置审计(Config)将您分散在各地域的资源整合为全局资源…

清华大学:2021元宇宙研究报告

关于元宇宙的详细介绍;来源:软件定义世界(SDX)往期推荐阿里云投入 20 亿发力操作系统谷歌自研Tensor芯片,8核CPU,20核GPURedis很厉害,使用规范来啦Facebook 改名Meta,是押注元宇宙还…

如何做规划?分享2种思维和4个方法

简介: 规划不只是高层的事。学会做规划,不仅可以让目标更聚焦,还能让我们清晰地知道今后要做什么、如何去做。在本篇文章中,提到了规划的2种思维模式,和作者自己在规划中用到的4个规划方法,希望让开始做规划…

vue如何在末尾添加_怎样在Linux上开发vue项目

一、开发环境搭建:安装node.js环境以及vue cli工具(1)安装node.js从官网下载对应的二进制压缩包,如下图:01.png解压到程序安装目录xz -d node-v12.17.0-linux-x64.tar.xztar -xvf node-v12.17.0-linux-x64.tarsudo mv node-v12.17.0-linux-x6…

计算机专业考哪些证书含金量高?

计算机专业要不要考证?考证很重要吗?考哪个好?对于有些人而言,他们可能会有人认为认证就是一张纸,没有太大的用处,看到大家都在考,心里又会产生动摇;还有人会认为考证的价格太高&…

【深度】阿里巴巴万级规模 K8s 集群全局高可用体系之美

简介: 台湾作家林清玄在接受记者采访的时候,如此评价自己 30 多年写作生涯:“第一个十年我才华横溢,‘贼光闪现’,令周边黯然失色;第二个十年,我终于‘宝光现形’,不再去抢风头&…

云原生时代,开发者如何构筑容器安全?

随着数字化转型进入“深水区”,云原生改变传统的开发模式,加快程序应用的开发、交付、运维效率,充分释放云价值。容器作为云原生的代表技术,正成为资源调度和编排的标准,有效帮助企业降低 IT 实施和运维成本。 据 CNC…

「技术人生」第2篇:学会分析事物的本质

简介: 对于研发同学而言,探究事物的本质,是最基础最核心最先需要被掌握的技能,没有之一。 作者:贺科学 技术一号位不是岗位,更多的是技术人员在公司中做事的一种心态,这个系列的文章适合所有想…

低代码能做什么?这家服务商用钉钉宜搭打造了智慧医院管理应用

简介: 谷瞰在医疗信息化领域积累的专业解决方案,如果能加持宜搭轻量级、高度灵活、极高效的开发支撑能力,可能是找到智慧医院快速落地的最优解。 “疫情作为催化剂,加速了医疗信息化的发展”,浙江谷瞰信息有限公司董事…