在 AKS 中运行 Azure DevOps 私有代理-1
简介
配置 Azure DevOps 私有代理的传统方法是将其部署在虚拟机 (VM) 上。然而,一个有趣的替代方案是利用 Azure Kubernetes 服务 (AKS) 来实现此目的。
本文将指导您如何使用 Helm Chart 在 AKS 集群中设置 Azure DevOps 私有代理,并提供该过程的分步说明。
在 AKS 中部署 Azure DevOps 私有代理(而不是预配新的虚拟机)会显著影响 CI/CD 流水线的成本效益、可扩展性和可管理性。虽然虚拟机易于设置,但它们会产生更高的成本,并且由于每个虚拟机都需要完整的操作系统和专用资源(无论工作负载如何),可能会导致资源利用不足。这种设置不仅增加了扩展和维护的复杂性,还增加了计算和存储成本。
相比之下,在 AKS 中托管 Azure DevOps 私有代理提供了一种更具动态性且经济高效的解决方案。AKS 简化了管理容器化应用程序的大部分复杂性,并充分利用了 Kubernetes 的编排功能。通过在 AKS 中将 DevOps 代理部署为容器,组织可以获得基于工作负载的自动扩展、比虚拟机更快的启动时间以及简化的代理队列管理。本文旨在探讨使用 AKS 相较于基于虚拟机的方法的优势,并提供在 AKS 中高效部署 Azure DevOps 私有代理的全面指南,从而增强 DevOps 工作流程,从而提高性能、可靠性和成本效益。
什么是 Azure DevOps 私有代理?
Azure DevOps 私有代理本质上是一种在用户提供的基础架构上运行的软件代理,无论是本地服务器、虚拟机,还是 Azure Kubernetes 服务 (AKS) 等容器化环境。这些代理负责执行 Azure DevOps 流水线中定义的任务,例如编译代码、运行测试和部署应用程序。每个私有代理都注册到特定的 Azure DevOps 组织,并且可以进一步与该组织内的一个或多个项目关联。
Azure DevOps 私有代理的优势如下:
- 自托管:与 Azure DevOps 提供的由 Microsoft 管理并在共享环境中运行的托管代理不同,私有代理由您或您的组织自托管。您可以在自己的基础架构上安装、配置和管理这些代理,从而更好地控制执行环境。
- 自定义:可以根据构建和发布任务的特定要求自定义私有代理。您可以安装其他软件、配置环境变量,并根据项目需求修改代理。
- 安全性和隔离性:当您需要在无法通过公共互联网访问的环境中执行 CI/CD 作业,或者希望更好地控制安全性时,通常会使用私有代理。私有代理可以在您的私有网络内运行,从而增强安全性和隔离性。
- 访问私有资源:如果您的 CI/CD 流程需要访问无法公开访问的私有资源、数据库或服务,则可以配置私有代理以在您的网络中访问这些资源。
技术场景
当您在无法通过公共互联网访问的私有网络中运行 Azure 服务,并且需要从位于公共网络中的 Azure DevOps 流水线进行连接时,解决方案是在与私有服务相同的虚拟网络中部署一台私有构建机器。这台私有构建机器充当桥梁,促进 Azure DevOps 流水线与私有网络内资源的无缝连接。
例如,如果您已经建立了一个私有 AKS 集群来运行应用程序,则需要在同一虚拟网络中部署一个专用的私有自托管代理来简化部署过程。同样,假设您已经配置了一个带有私有 DNS 区域的 PostgreSQL 服务器,并且您的 Azure DevOps 流水线位于公共网络中。要建立与该数据库的连接,需要在 PostgreSQL 服务器所在的虚拟网络中部署您自己的私有代理。此解决方案可以实现与私有资源的安全高效通信。
目标
在本练习中,我们的目标是完成并学习以下任务:
步骤 1:在 Kubernetes 中安装私有代理 Helmchart
步骤 2:在 AKS 中验证私有代理资源
步骤 3:在 Azure DevOps 中创建新的代理池
步骤 4:创建新的