如何使用KEDA自动缩放Azure管道代理
KEDA是一个事件驱动的自动缩放器,它通过根据需要处理的事件数量添加额外的HPA。
译者 | 李睿
(相关资料图)
审校 | 孙淑娟
如果你正在使用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管道代理。
用例
首先,需要花费时间来理解场景。例如一个ADO(Azure DevOps)项目,它使用持续集成(CI)/持续交付(CD)解决方案。在这一基础上,已经构建了构建/发布管道。这些管道使用自托管的容器化代理来执行所有任务。这些自托管的容器化代理作为状态集部署在GKE集群上。
下面的截图描述了在StatefulSet下只有一个pod代理,并且一个管道作业正在同一个pod代理上运行。如果创建更多的版本,它们(作业)将进入队列,等待单个pod代理空闲。有了KEDA,每当队列中有一个新作业时,将会看到pod的数量得到增加。
先决条件
采用ADO项目(已建立代理池)作为持续集成(CI)/持续交付(CD)解决方案。 在代理池下创建Azure管道代理所需的ADO项目权限。 Kubernetes集群将Azure管道代理部署为状态集。 必须为K8S集群中的应用程序建立必要的GCP网络连接,以便能够访问互联网。安装Azure管道代理
使用以下YAML在K8S集群上安装自托管的容器化Azure管道代理。
现在验证代理已成功注册到ADO代理池,可以看到代理也出现在Azure管道上。
azp-gent.yamlapiVersion: v1kind: Secretmetadata: name: azp-agent-secrettype: Opaquedata: vstsToken: BASE64-OF-PAT-TOKEN---apiVersion: v1kind: Servicemetadata: name: azp-agent labels: app.kubernetes.io/instance: azp-agent app.kubernetes.io/name: azp-agentspec: clusterIP: None selector: app.kubernetes.io/instance: azp-agent app.kubernetes.io/name: azp-agent---apiVersion: apps/v1kind: StatefulSetmetadata: labels: app.kubernetes.io/instance: azp-agent app.kubernetes.io/name: azp-agent name: azp-agentspec: replicas: 1 selector: matchLabels: app.kubernetes.io/instance: azp-agent app.kubernetes.io/name: azp-agent serviceName: azp-agent template: metadata: labels: app.kubernetes.io/instance: azp-agent app.kubernetes.io/name: azp-agent spec: containers: - env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: AZP_TOKEN valueFrom: secretKeyRef: key: vstsToken name: azp-agent-secret - name: AZP_POOL value: POOL-NAME - name: AZP_URL value: https://dev.azure.com/YOUR-ORG-NAME/ - name: AZP_WORK value: /var/vsts - name: AZP_AGENT_NAME value: $(POD_NAME) image: AZURE-PIPELINE-AGENT-IMAGE imagePullPolicy: Always name: azp-agent resources: limits: cpu: 500m memory: 1Gi requests: cpu: 100m memory: 500Mi volumeMounts: - mountPath: /var/vsts name: workspace - mountPath: /vsts/agent name: agent-dir - mountPath: /var/run/docker.sock name: docker-socket volumes: - hostPath: path: /var/run/docker.sock type: "" name: docker-socket volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: workspace spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi storageClassName: standard volumeMode: Filesystem - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: agent-dir spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: standard volumeMode: Filesystem
在Kubernetes集群上安装KEDA
可以通过多种方式在Kubernetes集群上安装KEDA。例如使用Helm chart在集群上安装KEDA,其他方法可以参考官方Helm图表。
KEDA在行动
如上所述,ScaledObject是在事件源和部署之间创建映射的对象。现在,将使用Azure管道触发器和TriggerAuthentication创建ScaledObject,以允许KEDA在状态集中缩放pod。
参考官方页面可以了解ScaledObject的所有参数。
一旦创建了ScaledObject,KEDA将自动同步配置,并开始监视上面创建的azp-agent Statefulset。KEDA使用所需的配置无缝地创建一个HPA对象,并基于通过ScaledObject提供的触发器规则(在本例中,它的队列长度为‘1’)缩放副本。
现在,将对回购进行一些提交,以排队一些构建。
因此,可以看到KEDA在azp-agent Statefulset中缩放了pod的数量,这些pod将被注册到代理池中,并承担队列上的挂起作业
KEDA拥有50多个缩放器,可以使用不同类型的事件源事件来驱动自动缩放,并且它还在继续添加更多的缩放器。因此,它绝对是一个可用于基于事件的自动缩放的生产级应用程序。
原文标题:Autoscale Azure Pipeline Agents With KEDA,作者:Basudeba Mandal
标签:
- 如何使用KEDA自动缩放Azure管道代理
- 使命完成!天舟五号货运飞船撤离全过程
- 【世界新要闻】圆通与同济大学携手共助中国快递物流供应链 喻渭蛟董事长分享主题报告《命运与时代》
- 世界观察:卓郎智能: 关于控股股东被动减持比例累计达到1%的公告
- 阿根廷议员提议将锂列为战略矿产 全球消息
- 我国跨境资金流动均衡 外汇储备规模保持基本稳定
- 人民币国际化稳步向前:一季度人民币跨境结算规模稳步扩大
- 环球报道:鸿蒙 3.0 正式版,华为 nova 4、荣耀 20 / Pro 等机型不限量升级
- 对门沟玫瑰香葡萄认养开始了|今日要闻
- 天天观焦点:长江委部署长江流域水工程联合调度计划
- “南京女大学生被害案”主犯洪峤被执行死刑-今亮点
- 宽面条怎样煮才不粘在一坨_宽面条怎么煮不会粘在一起
- 快资讯丨“五一”假期江苏高速公路新能源汽车充电量同比增长13倍
- 2023年北京最美科技工作者揭晓 每日资讯
- 浏览器系统兼容怎么设置 如何设置兼容浏览器_短讯
- 再添2所!2022年“湖南省文明高等学校”出炉
- 今日视点:国米球迷高唱三冠王歌曲,穆里尼奥送上飞吻
- 巴菲特:对人工智能有点担心 因为我们没有办法逆转它 速读
- 动态:乐观派,永不独行
- 澳大利亚政府:将对石油资源租赁税进行调整,这将影响到离岸液化天然气项目。
- 今日热搜:辟谣“倒闭传闻”的Q房网:去年关店800余间,大股东拟出售控股权
- 去露营|帐篷撑起的“诗和远方”,如何走得更远?
- 热点!最高检公布!批准逮捕10923人!
- 每日热讯!阿迪达斯:第一季度营收52.7亿欧元,预估50.6亿欧元
- 视点!《塞尔达传说王国之泪》三个出水口位置一览
- 垂头丧气的意思是什么呢(垂头丧气的意思是什么)
- 【新要闻】厦门航空产业园项目顺利完成主体结构封顶
- 刚果(金)东部暴雨引发洪水致176人死亡
- 枪响双村镇|天天速讯
- 张靓颖冯轲有特殊爱好_张靓颖和冯轲为什么离婚
- 2023巴菲特股东大会今晚开聊:近60个问答五大看点抢先看
- MSI入围赛才刚开始,T1又出来口嗨,直言夺冠后会笑着回韩国_天天观点
- 1688发布“双保”承诺:一年200个客户,复购率不低于20%|环球新资讯
- 世界快讯:电脑折旧年限和残值率计算方法 电脑是否算固定资产应该如何计算折旧年限残值如何计算
- 大成基金冉凌浩:今年整体来看港股肯定比较好,当然一季度没有那么强
- 全球快资讯:最新美国大片排名前十 美国大片排行榜前十名
- 河北内丘:培训应急知识 助力托育服务
- 天津市商业保理行业资产规模突破3000亿元
- 广州中考考生6月1日起填报志愿
- 中央气象台发布暴雨蓝色预警 7省区市将有大到暴雨_世界头条
- 票选|万物并秀!2023年立夏房企官宣海报大赏 天天时快讯
- 每日速递:中国团餐行业数据分析:2022中国团餐市场同比收入增长为11.9%
- 四川局部有暴雨 省防办发布风险提示-当前滚动
- 萧淑妃是谁_萧淑妃到底做了什么事情 为何说她的下场一点也不可怜
- 葛斌斌_关于葛斌斌的简介
- 一纪是多长时间_一纪是多少年简介介绍|快资讯
- 特斯拉全系车型在中国售价上调 上海超级工厂4月交付超7.5万辆_世界今日报
- “砍单”乱涨价,罚单来了!涉及福州豪柏大酒店、泉州长城戴斯酒店……
- 67股净利润翻10倍!机构重仓超预期龙头 焦点要闻
- 【新视野】110项重点工作清单,武汉着力打造全国营商环境新高地
- 2032年奥运会在哪个国家举办_2032年奥运会的简介
- 罗马诺:穆阿尼是拜仁今夏引援的头号目标
- 当前热点-今晚播出!《奔跑的青春——2023五四青年节特别节目》传递闪闪发光的青春力量
- 千亿大票冲击涨停!券商迎来“中特估”行情 天天观天下
- 东三省是哪几个省?_东三省是哪几个省 天天观察
- 微信如何全选聊天记录发送_微信如何全选聊天记录
- 贵阳城投集团30亿元公募债券项目更新至“已反馈”|天天看热讯
- 主板铝业概念上市公司排名(主板铝业概念上市公司有哪些)
- 鹤壁市淇滨区金山街道“三个三”推进移风易俗 助力乡村振兴 全球速递
- 【青春中国】时代向前 青年向上!
- 今日要闻!报告称2026年中国数据量将位居全球第一
- 港股午评|恒指重回2万点 内房股回弹 大金融股继续受捧
- 教学直播软件app_教学直播软件 当前滚动
- 铁路五一小长假共发送旅客1.33亿人次,较2019年同期增加2794万人次|全球速讯
- 世界今亮点!白色液体是怎么流出来的_男性射精前出来的液体是什么
- 【环球新视野】央视《平凡之路》最佳角色出炉,郭麒麟落榜
- “五一”假期,河北日均出行车辆1455万辆,同比上升47.6% 每日消息
- 天天观点:当日快讯:Lyft一季度收入10亿美元
- 资深分析师:空头实质上在“做好事” 帮投资者筛选好的美国银行-环球视点
- 环球看点!教科版小学科学六年级上册实验报告单_教科版六年级科学上册实验报告单
- 永信至诚:5月4日融资买入737.22万元,融资融券余额1.67亿元|世界最资讯
- 每日快播:赵宝刚青春三部曲演员 赵宝刚青春三部曲
- 魔兽世界恶魔猎手新手攻略_魔兽世界新职业恶魔猎手怎么创建
- 理一理_关于理一理介绍
- 电力大合同范本(热门45篇)|全球简讯
- 汗青是什么意思 汗青-世界微头条
- 祝贺!洛萨诺成为首位夺得意甲的墨西哥球员|环球即时
- 002013中航机电股票_002013中航机电
- 王风黍离的线索_王风黍离
- 正好侃球丨以平局开启五连客之旅 今年不如意的不仅仅是泰山 世界信息
- 环球精选!中国煤炭运销协会:后期煤炭市场可能呈现弱势局面 市场价格或将有所下行
- 焦点讯息:常州薛家镇积分入学标准(2023年) 天天滚动|当前看点
- 天天观速讯丨龙虎榜 | 汉仪股份今日涨停,机构合计净买入2046.94万元
- 暴跌超40%!美国银行危机愈演愈烈!第一地平线银行、西太平洋合众银盘前相继暴跌-世界新资讯
- 【天天聚看点】5.4:遵义通报当地7家白酒企业经营乱象;茅台巽风“立夏·酿酒竞赛”开启;五粮液快闪店亮相重庆…
- 王者荣耀名字搞笑_王者荣耀最皮的名字
- 马来西亚博特拉大学世界排名:2023QS123(附介绍|学费|录取率)
- 世界看热讯:AIGC率先冲击游戏行业,中小公司被救活了?
- 红酒能带上火车吗(红酒能带上火车吗最新信息)-世界资讯
- 你的建议,答复在这里!“奉浦快线车辆技术创新”人民建议征集活动后续反馈来啦-世界观焦点
- 大理的守护神,为何是这只“超凶”的金翅鸟?-天天热文
- 【世界速看料】2023年安庆医保报销的流程怎么走 安庆人在外地看病怎么报销
- 2023四川资阳市雁江区人民法院招聘审务辅助人员公告(3人)_全球资讯
- 研报掘金 | 建银国际:内险股上季新业务价值录三年以来首次转正 首选太保 环球快看点
- 河南郑州:“五一”假期博物馆成打卡热地 文物局长当起“讲解员” 文化旅游 天天热门
- 全国人口经度和纬度分布
- 快手短视频在线看_daredorm能看的视频_全球观焦点
- 基根-穆雷:很幸运能被国王选中 我自己没有特别擅长的领域
- 全球最资讯丨涉美国中情局,中方重磅曝光!
- 瑞昌市气象台发布雷电黄色预警信号【III级/较重】【2023-05-04】 重点聚焦
广告
广告
- 长治襄垣县增收11517万元 提前15天实现首季“开门红”
- 黑龙江讷河新增1例确诊4例无症状 病例详情公布
- 浙江宁波余姚奉化宁海三地开展核酸检测 结果均为阴性
- 浙江湖州南浔三处棋牌室经营者被行拘
- 那年今日 | 一张漫画涨知识之12月13日
- 在宁波乘火车跨省出行须持48小时内核酸阴性证明
- 浙江温州一地发现核酸弱阳性?复采复检结果均为阴性
- 浙江三门发现一名密接者:二次核酸检测结果均为阴性
- 贱卖的发电机 新买的制茶机——安徽水电供区改革两周年回访见闻
- 浙江杭州新增1例新冠肺炎确诊病例 为集中隔离人员
- 2022年研考在即,学硕缩招,专硕时代真的来了?
- 探访杭州核酸检测点:排队高峰多在夜间 医院24小时运转
- 浙江发挥零售药店“哨点”作用 织就疫情防控监测网
- 哈尔滨市本轮疫情首批1名确诊患者出院
- 宁波镇海第三轮全员核酸检测574181人 结果均为阴性
- 陕西新增本土确诊病例1例、境外输入无症状感染者2例
- 齐齐哈尔讷河一地调整为中风险地区
- 浙江新增新冠肺炎确诊病例75例 其中本土74例
- 内蒙古新增本土确诊病例5例 均在呼伦贝尔满洲里市
- 黑龙江无新增确诊病例 新增本土核酸检测初筛阳性人员5例