如何使用KEDA自动缩放Azure管道代理

译者 | 李睿,审校 | 孙淑娟,如果你正在使用Kubernetes解决方案作为一个平台,并在任何公共云中托管容器应用程序,那么迟早会面临高昂的帐单。Kubernetes计费在很大程度上取决于节点的数量,而节点数量是由集群的工作负载数量决定的。,众所周知,自动缩放是Kubernetes最受欢迎的特性之一。因此,在根本没有进行工作的情况下,减少一些工作负载并降低云计算成本将更为明智。,当人们谈到Kubernetes的自动缩放功能时,可能会想到水平Pod自动缩放器(HPA)。在默认情况下,HPA可以使用基本指标(如CPU或内存使用情况)实现自动缩放。然而,当复杂的分布式应用程序与Kubernetes集群之外的不同组件集成时(例如:Kafka topic lag、Redis Stream、Azure Pipeline Queue、Azure Service Bus、PubSub topic等),HPA本身无法基于这些组件的指标来缩放pod。  ,HPA可以使用自定义指标并以此为基础进行缩放,但它需要设置一个指标适配器和一个额外的配置层,以便将数据正确地映射到Kubernetes。  ,这就是KEDA让用户的工作变得轻松的地方。  ,为了克服这类问题,KEDA在HPA之上提供了缩放功能。KEDA是一个事件驱动的自动缩放器,它根据需要处理的事件数量添加额外的HPA。它自动缩放不同类型的Kubernetes资源,例如部署、状态集、作业和自定义资源。  ,KEDA由两个组件组成,用于控制pods/工作负载的自动缩放。  ,(1)代理:它负责激活和取消激活Kubernetes部署、状态集或任何其他目标,以便在没有事件时缩放到零,在有事件时缩放到零。  ,(2)度量服务器:它作为Kubernetes度量服务器,将从事件源收集的事件(Azure管道队列、Kafka主题消息等)公开到HPA。  ,缩放器:KEDA的真正力量在于大量的缩放器。缩放器是一个丰富的信息源,因为它提供外部数据/事件,并允许基于外部数据进行缩放。如今,它支持50多个具有特定支持触发器的缩放器,如Azure Pipeline(触发器:Azure Pipeline)和Kafka(触发器:Kafka Topics),并且还有更多功能。,ScaledObject:它们被部署为Kubernetes CRD,带来了将部署/状态集与事件源链接起来的功能,并定义了可缩放元数据。ScaledObject使用触发器响应事件源中发生的事件,并根据需要缩放工作负载。  ,KEDA使用另一个名为Trigger Authentication(名称空间)或ClusterTriggerAutnetication (集群作用域)的CRD对事件源进行身份验证。,如何使用KEDA自动缩放Azure管道代理,现在有足够的理论,以下来看一些实际用例,如何利用KEDA在代理池中管理Azure管道代理。,首先,需要花费时间来理解场景。例如一个ADO(Azure DevOps)项目,它使用持续集成(CI)/持续交付(CD)解决方案。在这一基础上,已经构建了构建/发布管道。这些管道使用自托管的容器化代理来执行所有任务。这些自托管的容器化代理作为状态集部署在GKE集群上。  ,下面的截图描述了在StatefulSet下只有一个pod代理,并且一个管道作业正在同一个pod代理上运行。如果创建更多的版本,它们(作业)将进入队列,等待单个pod代理空闲。有了KEDA,每当队列中有一个新作业时,将会看到pod的数量得到增加。  ,如何使用KEDA自动缩放Azure管道代理,使用以下YAML在K8S集群上安装自托管的容器化Azure管道代理。,如何使用KEDA自动缩放Azure管道代理,现在验证代理已成功注册到ADO代理池,可以看到代理也出现在Azure管道上。,如何使用KEDA自动缩放Azure管道代理,可以通过多种方式在Kubernetes集群上安装KEDA。例如使用Helm chart在集群上安装KEDA,其他方法可以参考官方Helm图表。  ,如何使用KEDA自动缩放Azure管道代理,如上所述,ScaledObject是在事件源和部署之间创建映射的对象。现在,将使用Azure管道触发器和TriggerAuthentication创建ScaledObject,以允许KEDA在状态集中缩放pod。  ,参考官方页面可以了解ScaledObject的所有参数。,如何使用KEDA自动缩放Azure管道代理,如何使用KEDA自动缩放Azure管道代理,一旦创建了ScaledObject,KEDA将自动同步配置,并开始监视上面创建的azp-agent Statefulset。KEDA使用所需的配置无缝地创建一个HPA对象,并基于通过ScaledObject提供的触发器规则(在本例中,它的队列长度为‘1’)缩放副本。  ,如何使用KEDA自动缩放Azure管道代理,如何使用KEDA自动缩放Azure管道代理,现在,将对回购进行一些提交,以排队一些构建。,如何使用KEDA自动缩放Azure管道代理,因此,可以看到KEDA在azp-agent Statefulset中缩放了pod的数量,这些pod将被注册到代理池中,并承担队列上的挂起作业,如何使用KEDA自动缩放Azure管道代理,如何使用KEDA自动缩放Azure管道代理,KEDA拥有50多个缩放器,可以使用不同类型的事件源事件来驱动自动缩放,并且它还在继续添加更多的缩放器。因此,它绝对是一个可用于基于事件的自动缩放的生产级应用程序。,原文标题:Autoscale Azure Pipeline Agents With KEDA,作者:Basudeba Mandal

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/22100.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月5日 上午12:00
下一篇 2023年3月7日 下午10:34