簡介
配置 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:創建新的