网易首页 > 网易号 > 正文 申请入驻

使用 KEDA 自动缩放 Azure pipeline代理

0
分享至

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。
KEDA 是一个事件驱动的自动缩放器,它通过根据需要处理的事件数量添加额外的 Pod 来水平缩放容器。

如果您使用Kubernetes解决方案作为在任何公共云中托管容器化应用程序的平台,那么计费就是迟早会追捕您的事情之一。Kubernetes 的计费很大程度上取决于节点的数量,而节点的数量取决于集群的工作负载数量。我们知道自动缩放是 Kubernetes 最喜欢的功能之一。因此,在根本没有工作时缩减一些工作负载并降低云成本会更明智。

当我们谈论 Kubernetes 自动缩放功能时,会自动想到 Horizontal Pod Autoscaler (HPA)。默认情况下,HPA 可以使用 CPU 或 RAM 使用率等基本指标来实现自动缩放。但是,如果复杂的分布式应用程序与 Kubernetes 集群外部的不同组件集成(例如:Kafka 主题滞后、Redis 流、Azure 管道队列、Azure 服务总线、PubSub 主题等),HPA 本身无法扩展基于这些组件的指标的 pod。

HPA 可以使用自定义指标并在此基础上进行扩展,但它需要您设置指标适配器和额外的配置层才能将数据正确映射到 Kubernetes。

这就是KEDA 让我的生活变得轻松的地方。

为了克服此类问题,KEDA 在 Horizo ntal Pod Autoscaler (HPA) 之上提供了扩展功能。KEDA 是一个事件驱动的自动缩放器,它通过根据需要处理的事件数量添加额外的 Pod 来水平缩放容器。它自动扩展不同类型的 Kubernetes 资源,例如部署、Statefulsets、作业和自定义资源。

架构和概念

在高水平。KEDA 由两个组件组成,用于控制 Pod/工作负载的自动缩放。

  1. 代理:它负责激活和停用 Kubernetes 部署、状态集或任何其他目标,以便在没有事件时缩放到零或在有事件时从零缩放。
  2. Metrics Server:它充当 Kubernetes 指标服务器,将从事件源收集的事件(Azure 管道队列、Kafka 主题消息等)公开给 Horizontal Pod Autoscaler (HPA)。

Scaler:KEDA的真正力量在于大量的Scaler。缩放器是丰富的信息源,因为它提供外部数据/事件并允许您根据外部数据进行缩放。今天,它支持 50 多个“缩放器”,并带有特定支持的触发器,如 Azure Pipeline(触发器:azure-pipeline)和 Kafka(触发器:Kafka 主题),并且还会有更多。

ScaledObject:这些被部署为 Kubernetes CRD,它带来了将部署/状态集与事件源链接的功能,并定义了缩放元数据。ScaledObject 使用触发器来响应事件源中发生的事件并根据需要扩展工作负载。

KEDA 使用另一个名为 TriggerAuthentication(namespaced) 或 ClusterTriggerAutnetication (Cluster Scoped) 的 CRD 对事件源进行身份验证。

现在理论足够了;让我们来看一些实际用例,看看我们如何利用 KEDA 来管理代理池中的 azure 管道代理。

用例

在开始之前,让我们花点时间了解一下我们的场景。我们有一个 ADO (Azure DevOps) 项目,它使用持续集成和部署(CICD) 解决方案。在此之下,已经构建了构建/发布管道。这些管道使用自托管的容器化代理来执行所有任务。这些自托管的容器化代理作为 statefulset 部署在 GKE 集群上。

下面的屏幕截图描述了我们在 statefulset 下只有一个 pod 代理,并且一个管道作业正在同一个 pod 代理上运行。如果我们创建更多版本,它们(作业)将进入队列并等待单个 pod 代理空闲。有了 KEDA,我们希望在队列中有新作业时看到 Pod 的数量得到扩展。

先决条件

  1. ADO 项目(已设置代理池)用作 CICD 解决方案。
  2. 在代理池下创建 Azure 管道代理所需的 ADO 项目权限。参考这里。
  3. Kubernetes 集群将 azure 管道代理部署为 statefulset。
  4. 必须为 k8s 集群中的应用程序构建所需的 GCP 网络连接才能访问互联网。
安装 Azure 管道代理

使用以下 YAML 在 k8s 集群上安装自托管容器化 azure 管道代理。

现在让我们验证代理是否已成功注册到 ADO 代理池。我们可以看到代理也出现在Azure Pipelines上。

azp-gent.yamlapiVersion: v1kind: Secretmetadata:name: azp-agent-secrettype: Opaquedata:vstsToken: BASE64-OF-PAT-TOKEN---apiVersion: v1kind: Servicemetadata:name: azp-agentlabels:app.kubernetes.io/instance: azp-agentapp.kubernetes.io/name: azp-agentspec:clusterIP: Noneselector:app.kubernetes.io/instance: azp-agentapp.kubernetes.io/name: azp-agent---apiVersion: apps/v1kind: StatefulSetmetadata:labels:app.kubernetes.io/instance: azp-agentapp.kubernetes.io/name: azp-agentname: azp-agentspec:replicas: 1selector:matchLabels:app.kubernetes.io/instance: azp-agentapp.kubernetes.io/name: azp-agentserviceName: azp-agenttemplate:metadata:labels:app.kubernetes.io/instance: azp-agentapp.kubernetes.io/name: azp-agentspec:containers:- env:- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name- name: AZP_TOKENvalueFrom:secretKeyRef:key: vstsTokenname: azp-agent-secret- name: AZP_POOLvalue: POOL-NAME- name: AZP_URLvalue: https://dev.azure.com/YOUR-ORG-NAME/- name: AZP_WORKvalue: /var/vsts- name: AZP_AGENT_NAMEvalue: $(POD_NAME)image: AZURE-PIPELINE-AGENT-IMAGEimagePullPolicy: Alwaysname: azp-agentresources:limits:cpu: 500mmemory: 1Girequests:cpu: 100mmemory: 500MivolumeMounts:- mountPath: /var/vstsname: workspace- mountPath: /vsts/agentname: agent-dir- mountPath: /var/run/docker.sockname: docker-socketvolumes:- hostPath:path: /var/run/docker.socktype: ""name: docker-socketvolumeClaimTemplates:- apiVersion: v1kind: PersistentVolumeClaimmetadata:name: workspacespec:accessModes:- ReadWriteOnceresources:requests:storage: 50GistorageClassName: standardvolumeMode: Filesystem- apiVersion: v1kind: PersistentVolumeClaimmetadata:name: agent-dirspec:accessModes:- ReadWriteOnceresources:requests:storage: 5GistorageClassName: standardvolumeMode: Filesystem

在 Kubernetes 集群上安装 KEDA

KEDA 可以通过多种方式安装在 Kubernetes 集群上。我已经使用 helm chart 在集群上安装了 KEDA。您可以在此处参考官方 Helm 图表。

科达在行动

如前所述,ScaledObject 是在事件源和部署之间创建映射的对象。现在,我们将使用 azure-pipeline 触发器和 TriggerAuthentication 创建 ScaledObject,以允许 KEDA 在 statefulset 中缩放 pod。

请参阅此处的官方页面以探索 ScaledObject 的所有参数。

创建 ScaledObject 后,KEDA 会自动同步配置并开始监视上面创建的 azp-agent Statefulset。KEDA 无缝创建具有所需配置的 HPA(Horizontal Pod Autoscaler)对象,并根据通过 ScaledObject 提供的触发规则(在本例中为队列长度为“1”)扩展副本。

现在,我将对我的 repo 进行一些提交以将一些构建排入队列。

结果,我们可以看到 KEDA 扩展了 azp-agent Statefulset 中的 pod 数量,这些 pod 将注册到代理池并占用队列中的待处理作业。

KEDA 有 50 多个缩放器来驱动使用不同类型的事件源事件的自动缩放,并且它还在继续添加更多。因此,它绝对是一个生产级应用程序,可用于基于事件的自动缩放。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
比俄罗斯还大方!为中国送来上千个核心技术,只为报答我国恩情

比俄罗斯还大方!为中国送来上千个核心技术,只为报答我国恩情

踏尽世间疾
2024-11-27 16:52:42
奇耻大辱,基辅移交莫斯科的图-160轰炸机,被俄拿来轰炸乌克兰

奇耻大辱,基辅移交莫斯科的图-160轰炸机,被俄拿来轰炸乌克兰

白虎堂
2024-11-27 08:50:39
暴跌88%!中国最大车企向华为妥协了!

暴跌88%!中国最大车企向华为妥协了!

财经三分钟pro
2024-11-28 19:59:01
同济医院18名骨科医生收回扣2200多万元,查不到医生的处罚结果?

同济医院18名骨科医生收回扣2200多万元,查不到医生的处罚结果?

你食不食油饼
2024-11-29 01:55:34
为什么找女友,腿越粗越好?!

为什么找女友,腿越粗越好?!

健身S叔
2024-11-26 23:11:05
46岁郝蕾暴瘦二十斤!穿粉色西装又飒又美,重回颜值巅峰

46岁郝蕾暴瘦二十斤!穿粉色西装又飒又美,重回颜值巅峰

南城无双
2024-11-22 00:55:56
朱莉与小9岁黑人男友酒店密会,颜值没比皮特高,但孩子们能接受

朱莉与小9岁黑人男友酒店密会,颜值没比皮特高,但孩子们能接受

南城无双
2024-11-28 13:48:09
黄圣依曝李行亮麦琳和好后,约他们出来聚餐被拒,原因让人笑翻

黄圣依曝李行亮麦琳和好后,约他们出来聚餐被拒,原因让人笑翻

娱最资讯
2024-11-29 00:01:53
性质恶劣! 上海交通大学附属第六人民医院胸外科论文被质疑

性质恶劣! 上海交通大学附属第六人民医院胸外科论文被质疑

王晓爱体彩
2024-11-28 19:40:16
美将公布新的对华芯片出口限制?商务部:若美方执意升级管制,中方将采取必要措施

美将公布新的对华芯片出口限制?商务部:若美方执意升级管制,中方将采取必要措施

每日经济新闻
2024-11-28 16:43:34
韩娱的恋幼审美已经不藏了?她这乳牙还没换完就出道对打张元英了

韩娱的恋幼审美已经不藏了?她这乳牙还没换完就出道对打张元英了

新氧
2024-11-28 11:37:33
南京某食品企业流出过期腐败冻肉?当地市场监管:已介入调查|追踪到底

南京某食品企业流出过期腐败冻肉?当地市场监管:已介入调查|追踪到底

封面新闻
2024-11-28 22:00:11
郑爽的滞留美国现状:又胖又秃生活窘迫,为留美国找白人男友

郑爽的滞留美国现状:又胖又秃生活窘迫,为留美国找白人男友

阿纂看事
2024-11-14 10:52:04
没让大陆失望!蔡英文返台,下飞机前讲出3个词,民进党底牌打光

没让大陆失望!蔡英文返台,下飞机前讲出3个词,民进党底牌打光

现代小青青慕慕
2024-11-26 07:20:34
孙卓上大学后有了新变化,留起长发还扎小辫子,父母的态度有分歧

孙卓上大学后有了新变化,留起长发还扎小辫子,父母的态度有分歧

石榴妈妈教育日记
2024-11-27 20:39:42
极氪高管发销量榜引小鹏高管不满:这么贴心的挑出1000台?

极氪高管发销量榜引小鹏高管不满:这么贴心的挑出1000台?

三言科技
2024-11-28 08:33:25
中国第一败家子,争抢女星与文强大打出手,在天上人间石破天惊

中国第一败家子,争抢女星与文强大打出手,在天上人间石破天惊

干史人
2024-11-07 07:00:03
班主任用16张戳心图告诉你:不读书,换来的是一生的卑微和底层!

班主任用16张戳心图告诉你:不读书,换来的是一生的卑微和底层!

山东教育信息
2024-10-23 11:58:47
中美选谁?默克尔:欧美利益不同,提醒中方如何与特朗普打交道!

中美选谁?默克尔:欧美利益不同,提醒中方如何与特朗普打交道!

清风醉史
2024-11-29 08:49:35
发现个奇怪现象:凡是父母独自生活,子女忙事业,双方都轻松自在

发现个奇怪现象:凡是父母独自生活,子女忙事业,双方都轻松自在

鬼谷子思维
2024-11-12 15:24:03
2024-11-29 09:51:00
墨谈科技
墨谈科技
业务数码玩家.无聊的博主
3831文章数 580关注度
往期回顾 全部

科技要闻

车企付款周期特斯拉最短,造车新势力垫底

头条要闻

上海女子称遭中医侵犯:没注意到他脱裤子 来不及防备

头条要闻

上海女子称遭中医侵犯:没注意到他脱裤子 来不及防备

体育要闻

道心破碎的姆巴佩,交出一张负分答卷

娱乐要闻

冯绍峰新恋情曝出!女方第一时间发文辟谣

财经要闻

洪灏:不要误解增量政策 不是数越大越好

汽车要闻

ID. CODE概念车/探岳L领衔 大众汽车携25款车亮相

态度原创

亲子
艺术
房产
家居
数码

亲子要闻

爸爸过来想要抱抱宝宝,看都不看爸爸自顾自玩自己的

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

房产要闻

湾区黄金枢纽之上,有灵魂与底蕴的「世界庄园」广佛新世界,打版第四代高质量住宅!

家居要闻

简约大气风格 舒适通透空间

数码要闻

全球首款动态血压监测手表!华为WATCH D2首销:首发2888元

无障碍浏览 进入关怀版