Harbor 作為一個開源的 Cloud Native Image Registry,提供了許多強大的功能來管理和保護你的 Container Image,其中一項重要的功能就是 Tag Retention Rules (標籤保留規則),這也是維持容量、做好版本管理重要的一項機制。許多團隊在初期沒有訂定正確的 Image 保留機制,導致許多沒有使用的 Image 囤積在 Registry 內,除了造成效率低落外,團隊也經常無法確認那些 Image 是重要且正在使用。本篇文章將簡單介紹 Tag Retention Rules,提供有興趣的朋友參考。





什麼是 Tag Retention Rules?

Tag Retention Rules 就像倉庫管理員,它可以根據你設定的規則,自動清理舊的或不需要的Image ,釋出儲存空間並保持 Registry 的簡潔。

Tag Retention Rules 的優點:

  • 節省儲存空間: 避免存放過多 Image 而耗盡儲存空間。
  • 提高效率: 自動化清理流程,節省人力和時間;Harbor 存放過多 Image 也會造成效能不佳情況發生。
  • 降低風險: 刪除舊的和未使用的 Image ,減少安全漏洞和管理成本。




如何設定 Tag Retention Rules?

設定 Tag Retention Rules 非常簡單,只需幾個步驟:

  1. 登錄 Harbor 介面: 使用管理員帳號登錄 Harbor。
  2. 點選專案: 選擇要設定規則的專案。
  3. 進入 Tag Retention 頁面: 在專案上方功能列點選 原則 > 標籤保留。
  4. 新增規則: 點擊 "新增規則" 按鈕,開始設定。




在設定規則時,你需要定義以下幾個關鍵參數:
  • 規則名稱: 為規則設定一個易於理解的名稱。
  • 保留的 Image 數量或天數: 選擇要保留的映像檔數量或保留的天數。
  • 匹配或排除的儲存庫: 指定規則要套用到的儲存庫,可以使用萬用字元 (*) 進行模糊匹配。
  • 匹配或排除的標籤: 指定規則要套用到的標籤,同樣可以使用萬用字元 (*) 進行模糊匹配。



Tag Retention Rules 設定範例

以下是一些常見的 Tag Retention Rules 設定範例:

範例 1:保留最新 10 個映像檔

  • 規則名稱:保留最新 10 個映像檔
  • 保留的映像檔數量:10
  • 匹配的儲存庫:**
  • 匹配的標籤:*

這個規則會保留每個儲存庫中最新推送的 10 個映像檔,而舊的映像檔將被刪除。

範例 2:保留 30 天內的映像檔

  • 規則名稱:保留 30 天內的映像檔
  • 保留的天數:30
  • 匹配的儲存庫:my-project/**
  • 匹配的標籤:*

這個規則會保留 `my-project` 專案下所有儲存庫中 30 天內推送的映像檔。

範例 3:保留特定標籤的映像檔

  • 規則名稱:保留 release 標籤的映像檔
  • 保留的映像檔數量:全部
  • 匹配的儲存庫:**
  • 匹配的標籤:release-*

這個規則會保留所有儲存庫中標籤以 `release-` 開頭的映像檔,例如 `release-1.0`、`release-2.0` 等。



結果呈現

當你設定好 Tag Retention Rules 後,Harbor 會根據規則 定期執行清理任務。你可以在 Harbor 介面中查看規則的執行狀態和清理結果,例如哪些 Image 被保留,哪些 Image 被刪除等。





總結

Tag Retention Rules 是 Harbor 提供的一個非常實用的功能,它可以幫助你有效地管理容器Image ,節省儲存空間,並提高工作效率。希望這篇文章能幫助你了解 Tag Retention Rules 的基本概念和使用方法。

提示:

  • 在設定 Tag Retention Rules 之前,請仔細規劃你的保留策略,以免誤刪重要的 Image 。
  • 建議定期檢查規則的執行情況,確保規則按照預期工作。
  • Harbor 的官方文件提供了更詳細的資訊,可以幫助你更好地理解和使用 Tag Retention Rules。

希望以上資訊對您有所幫助!