Docker 業務如何擴展以服務數百萬開發人員,第 2 部分:出站數據

Docker 業務如何擴展以服務數百萬開發人員,第 2 部分:出站數據

這是系列文章中的第二篇文章,將介紹下載容器鏡像時的限制。

В 第一部分 我們仔細查看了存儲在最大的容器鏡像註冊表 Docker Hub 中的鏡像。 我們寫這篇文章是為了幫助您更好地了解我們更新後的服務條款將如何影響使用 Docker Hub 管理容器映像和 CICD 管道的開發團隊。

下載頻率限制之前已在我們的 服務條款. 我們仔細看看將於 1 年 2020 月 XNUMX 日生效的頻率限制:

免費計劃,匿名用戶:100 小時內下載 6 次
免費計劃,授權用戶:200 小時內 6 次下載
專業計劃:無限制
團隊計劃:不限

Docker 下載頻率定義為對 Docker Hub 的清單請求數。 圖片下載頻率限制取決於請求圖片的帳戶類型,而不是圖片所有者帳戶的類型。 對於匿名(未授權)用戶,下載頻率與 ip 地址相關聯。

注: 您將收到更多的細微之處和最佳實踐案例 來自從業者的 Docker 課程. 此外,您可以在方便的時候通過它 - 無論是時間還是心情。

我們收到來自客戶和社區的關於容器鏡像層的問題。 我們在限制下載頻率時不考慮圖像層,因為我們限制清單下載,層數(blob 請求)目前沒有限制。 此更改基於社區反饋,以使其更加用戶友好,因此用戶不必在使用的每種外觀上計算層數。

Docker Hub鏡像下載頻率詳解

我們花了很多時間分析從 Docker Hub 下載圖像以確定速度限制的原因,以及如何限制速度。 我們所看到的證實了幾乎所有用戶都在以典型工作流程的可預測速率下載圖像。 但是,少數匿名用戶的影響很明顯,例如,大約 30% 的下載量僅來自 1% 的匿名用戶。

Docker 業務如何擴展以服務數百萬開發人員,第 2 部分:出站數據

新限制基於此分析,因此我們的大多數用戶不會受到影響。 這些限制是為了反映開發人員的正常使用情況——學習 Docker、開發代碼、構建圖像等。

幫助開發者更好地理解下載頻率限制

現在我們了解了影響以及邊界應該在哪裡,我們必須確定這些限制操作的技術條件。 限制從 Docker 註冊表下載圖像非常困難。 您不會在註冊表描述中找到用於下載的 API - 它根本不存在。實際上,下載圖像是 API 中清單請求和 blob 的組合,它們的執行方式不同,具體取決於狀態客戶端和請求的圖像。

例如,如果您已經有一個圖像,Docker 引擎將發出一個清單請求,根據接受的清單了解它已經具有所有必要的層,然後停止。 另一方面,如果您正在下載支持多種體系結構的圖像,清單請求將返回每個支持的體系結構的圖像清單列表。 然後,Docker 引擎將針對其運行的特定架構發出另一個清單請求,作為回報,它將獲得映像中所有層的列表。 然後它將查詢每個缺失的圖層(blob)。

注: 這個主題在 碼頭工人課程,我們將在其中分析其所有工具:從基本抽像到網絡參數,以及使用各種操作系統和編程語言的細微差別。 您將熟悉這項技術,並了解在何處以及如何最好地使用 Docker。

事實證明,下載一張圖片其實就是一兩次manifest請求,以及從零到無窮大——層(blob)的請求。 過去,Docker 逐層跟踪下載頻率,因為這與帶寬使用情況最為相關。 但是,儘管如此,我們還是聽取了社區的意見,這更加困難,因為您需要跟踪請求的層數,這將導致忽略有關使用 Dockerfile 的最佳實踐,並且對於只想在不了解細節的情況下使用註冊表。

所以我們根據清單請求來限制請求的數量。 這與下載圖片有直接關係,用戶很容易理解。 確實存在細微差別 - 如果您嘗試下載已經存在的圖像,即使您不下載圖層,該請求仍會被考慮在內。 無論如何,我們希望這種限制下載頻率的方法既公平又對用戶友好。

期待您的反饋

我們將監控限制並根據常見用例進行適當調整,以確保限制適用於每種類型的用戶,尤其是,我們將盡量不阻止開發人員開展工作。

在接下來的幾週內,請繼續關注另一篇關於根據這些變化調整 CI 和戰鬥系統的文章。

最後,作為我們對開源社區支持的一部分,我們將在 1 月 XNUMX 日之前為開源提供新的定價計劃。 如需申請,請填寫表格 這裡.

有關服務條款最新變更的更多信息,請訪問 常見問題.

對於那些需要提高圖像下載頻率限制的人,Docker 提供了無限圖像下載功能。 專業或團隊計劃. 一如既往,我們歡迎反饋和問題。 這裡.

來源: www.habr.com

添加評論