Azure DevOps — Kubernetes 上的自托管代理 — 第 5 部分

欢迎来到第五部分。在优化 CI/CD 工作流程的过程中,我们探索了如何设置 Linux、Windows 和 Docker-in-Docker (DinD) 自托管代理,将它们集成到 Kubernetes,并确保与 Azure DevOps 无缝连接。然而,在实际项目中,通过清单文件单独管理这些代理可能会非常繁琐。为了简化此流程,我们引入了 Helm Charts 来部署这些代理。

Helm Charts 简介

Helm Charts 提供了一种便捷的方式来管理 Kubernetes 上复杂应用程序和服务的部署。通过将配置详细信息封装到可重用的模板中,Helm Charts 简化了部署流程,并实现了对各种组件的更佳控制。

Helm Chart 结构

复制代码
az-selfhosted-agents/
  ├── charts/
  ├── templates/
  │   ├── dind-deploy.yaml
  │   ├── windows-deploy.yaml
  │   ├── linux-deploy.yaml
  │   ├── secret.yaml
  │   ├── sysbox-install.yaml
  │   ├── _helpers.tpl
  ├── values.yaml
  ├── .helmignore
  ├── Chart.yaml
  ├── LICENSE
  └── README.md

使用 Helm Chart 部署代理

在本部分中,我们将使用单个 Helm Chart 部署 Linux、Windows 和 DinD 代理。Helm 的灵活性使我们能够根据项目需求选择性地安装或跳过特定的自托管代理。

默认情况下,Helm Chart 中禁用所有三种类型的代理(Linux、Windows 和 DinD)。要安装特定代理,我们可以使用以下命令:

示例:Linux

复制代码
helm install az-selfhosted-agents ./az-selfhosted-agents \
 --set linux.enabled=true \
 --create-namespace -n az-devops

此命令会创建一个新的命名空间 az-devops,并安装指定的代理,即 Linux 代理。

或者,如果您想安装所有代理,可以使用以下命令:

复制代码
helm install az-selfhosted-agents ./az-selfhosted-agents \
 --set windows.enabled=true \
 --set linux.enabled=true \
 --set dind.enabled=true \
 --create-namespace -n az-devops

结论

使用 Helm Charts,管理自托管代理的部署变得更加高效且可扩展。借助 Helm 的功能,我们可以根据项目需求轻松配置和部署代理,从而简化 CI/CD 流水线的设置流程。

相关推荐
牛奶咖啡138 小时前
DevOps自动化运维实践_搭建UEFI网络引导的自动安装Debian系统
运维·自动化·devops·uefi·pxe·debian自动应答文件·debian网络自动化安装系统
国医中兴8 小时前
分布式存储的缓存优化:从理论到实践
微服务·云原生·容器·kubernetes·k8s
qq_2975746718 小时前
K8s系列第十三篇:K8s 监控告警实战:Prometheus + Grafana 部署与配置
kubernetes·grafana·prometheus
信创DevOps先锋1 天前
Gitee:中国开发者生态的数字化转型基石与创新加速器
运维·gitee·devops
Brandon汐1 天前
从0开始搭建一主两节点k8s集群对接Ceph集群
ceph·容器·kubernetes
小Pawn爷1 天前
实战演练:玩转k8s
云原生·容器·kubernetes
牛奶咖啡131 天前
DevOps自动化运维实践_搭建UEFI网络引导的自动安装Ubuntu20及其更高版本系统
运维·自动化·devops·cloud-init·cloud-init自动应答·ubuntu24系统自动化安装·uefi网络引导自动安装部署
清水白石0081 天前
Python 服务优雅停机实战:信号处理、资源收尾与 Kubernetes 滚动发布避坑指南
python·kubernetes·信号处理
.柒宇.2 天前
基于 RHEL 9.7 搭建 Kubernetes v1.34 集群实战:Docker 运行时 (cri-dockerd) 与国内源配置详解
docker·云原生·容器·kubernetes·kubelet