在 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:創建新的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/91779.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/91779.shtml
英文地址,請注明出處:http://en.pswp.cn/web/91779.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C# _Json數據

目錄 1、添加Json庫 2、數據序列化(對象轉 JSON)和反序列化(JSON 轉對象)操作 3、序列化 創建和讀取Json數據 創建Json數據 定義一個CreateJson方法 讀取 解析 Json數據 定義一個ReadJson方法 4、程序運行結果 在 C# 中&…

JavaScript 原始值與引用值

JavaScript 原始值與引用值 ECMAScript變量可以包含兩種不同類型的數據:原始值和引用值。 原始值(primitive value)就是最簡單的數據,引用值(reference value)則是由多個值構成的對象。 保存原始值的變量是…

linux中掛載磁盤和卸載

查找磁盤 找到你想要掛載的磁盤。可以使用lsblk或fdisk -l命令來查看系統中所有的磁盤和分區信息。 lsblk 對數據盤進行分區 在fdisk交互界面里,按以下步驟操作 fdisk /dev/vdb- 輸入n來創建新分區。 - 按照提示設置分區的起始扇區、結束扇區等信息,…

java8學習筆記-Stream流

JDK1.8新增了Stream類,從而把函數式編程的風格引入到Java語言中,Stream類的API提供了強大的功能,使用Stream后,可以寫出更加強大,更加簡潔的代碼首先,Stream流有一些特性:Stream流不是一種數據結…

Flutter開發 dart語言基本語法

特點 Dart語言支持JIT與AOT。 Dart語言采用單線程模型。 Dart語言是強類型編程語言,但是允許弱類型語言式編程。 基本語法 1.變量和常量 變量 var、object、dynamic關鍵字或數據類型顯式聲明變量。 命名規則: 變量名稱必須由數字、字母、下劃線或$組成&a…

SpringBoot:基于 Redis 自定義注解實現后端接口防重復提交校驗(冪等操作)

SpringBoot:基于 Redis 自定義注解實現后端接口防重復提交校驗(冪等操作)可基于 時間間隔 和 用于冪等判斷的參數名稱 實現防重復提交校驗 客戶端發送請求 ↓ [Spring Boot 應用入口]↓ ┌─────────────────────────…

【語音技術】意圖與語料

目錄 1. 意圖 1.1. 意圖分類 1.1.1 入口意圖(Entry Intent) 1.1.2 對話意圖(Dialog Intent) 1.2. 意圖類型切換操作步驟 2. 語料 2.1 語料分類詳解 2.2 語料編寫規范詳解 2.3 標簽符號深度說明 3. 詞槽 3.1 符類型要求 …

【MySQL集群架構與實踐5】使用Docker實現水平分片

目錄 一. 在Docker中安裝ShardingSphere 二. 實踐:水平分片 2.1 應用場景 2.2 架構圖 2.3 服務器規劃 2.4 創建server-user容器 2.5 創建server-order0和server-order1容器 2.6.日志配置 2.7 數據節點配置 2.8.測試數據節點 2.8.1.測試server_order0.t_or…

視覺圖像處理中級篇 [1]—— 彩色照相機的效果與預處理

在工業檢測中,黑白相機雖應用廣泛,但在應對顏色差異檢測時往往力不從心。彩色照相機憑借其對色彩信息的精準捕捉,成為復雜場景下的理想選擇,而預處理技術則進一步釋放了其性能潛力。一、彩色照相機的效果檢查蓋子上的金色標簽可以…

使用 BERT 的 NSP 實現語義感知切片 —— 提升 RAG 系統的檢索質量

在構建 Retrieval-Augmented Generation(RAG)系統時,文檔的切片方式至關重要。我們需要將長文本切分成合適的段落(chunks),然后存入向量數據庫進行召回。如果切得太粗,會丟失上下文細節&#xf…

使用STM32CubeMX生成的STM32CubeIDE工程在更改工程名后編譯失敗問題解決

0 問題描述 使用STM32CubeMX生成STM32CubeIDE工程,然后使用STM32CubeIDE改名后編譯提示如下錯誤: 1 問題原因及解決辦法 1.1 問題原因 原因在于更名后STM32CubeIDE沒有自動更新引用關系,這是因為我們使用STM32CubeMX生成代碼時沒有勾選在根目錄下生成: 取消勾選在根目…

8月3日星期日今日早報簡報微語報早讀

8月3日星期日,農歷閏六月初十,早報#微語早讀。1、廣西防城港:奔馳女司機身份已查清,結果將統一對外發布;2、陳藝文、陳佳包攬游泳世錦賽女子跳水三米板金銀牌;3、九省份保險業已賠付暴雨災害損失5.2億元&am…

wxPython 實踐(六)對話框

wxPython 實踐(一)概述 wxPython 實踐(二)基礎控件 wxPython 實踐(三)頁面布局 wxPython 實踐(四)事件響應 wxPython 實踐(五)高級控件 wxPython 實踐&#x…

MATLAB科研數據可視化技術

互聯網的飛速發展伴隨著海量信息的產生,而海量信息的背后對應的則是海量數據。如何從這些海量數據中獲取有價值的信息來供人們學習和工作使用,這就不得不用到大數據挖掘和分析技術。數據可視化分析作為大數據技術的核心一環,其重要性不言而喻…

文明存續的時間博弈:論地球資源枯竭臨界期的技術突圍與行動緊迫性

摘要當地球資源消耗以指數級速度逼近生態承載力極限,人類文明正面臨“存續還是消亡”的終極抉擇。本文基于地球資源枯竭的實證數據與技術突破的可行性分析,揭示文明存續的時間窗口已進入不可逆臨界期(2040-2070年),論證…

Elasticsearch 8.19.0 和 9.1.0 中 LogsDB 和 TSDS 的性能與存儲改進

作者:來自 Elastic Martijn Van Groningen 探索 TSDS 和 LogsDB 的最新增強功能,包括優化 I/O、提升合并性能等。 Elasticsearch 帶來了許多新功能,幫助你為你的使用場景構建最佳搜索解決方案。通過我們的示例筆記本深入學習,開始…

cs336之注意pytorch的tensor在哪里?(assert的使用)

問題 記住:無論何時你在pytorch中有一個張量tensor,你應該始終問一個問題:它當前位于哪里? 注意它在CPU還是在GPU中。要判斷它在哪里,可以使用python的assert斷言語句。 assert斷言 在 Python 中,assert 是…

Mysql 分區表

分區表是將一張表分成多張獨立子表,每個子表是一個區,目的是提高查詢效率。 從 server 層來看,只有一張表。但是從引擎層來看,是多張表,對應多個.idb文件。引擎層訪問數據只訪問特定分區表,也只對特定分區表…

Makefile 入門與實踐指南

Makefile 是用于 make 工具的配置文件,它定義了如何編譯和鏈接你的項目,讓構建過程自動化。一、核心概念 make 的核心思想是 “目標”(Target) 和 “依賴”(Dependencies): 目標 (Target)&#…

分布式微服務--Nacos作為配置中心(補)關于bosststrap.yml與@RefreshScope

一、關于bosststrap.yml? bootstrap.yml 和 application.yml 的區別對比項bootstrap.ymlapplication.yml加載時機優先于 application.yml 加載(啟動早期)程序初始化完成后加載主要用途設置應用的外部配置源、注冊中心信息等設置應用內部配置&#xff0c…