Azure Container Registry 服務層級
Azure Container Registry 具有多個服務層級 (也稱為SKU)。 這些層級會提供可預測的定價,以及數個可符合您在 Azure 中私用 Docker 登錄容量和使用模式的選項。
層 | 描述 |
---|---|
基本 | 開發人員了解 Azure Container Registry 的成本最佳化進入點。 「基本」登錄具有與「標準」和「進階」相同的程式設計功能 (例如 Microsoft Entra 驗證整合、映像刪除和 Webhook)。 不過,內含儲存體和映像輸送量最適合較低的使用方式情節。 |
標準 | 「標準」登錄提供與「基本」登錄相同的功能,並且有著更高的內含儲存體和映像輸送量。 「標準」登錄應該能滿足大部分實際執行案例的需求。 |
高級 | 「進階」登錄提供最多的內含儲存體和並行作業,可應付高容量案例。 除了更高的映像輸送量之外,「進階」也會新增功能,例如新增異地複寫以在多個區域上管理單一登錄,針對映像標籤簽署新增內容信任,新增具有私人端點的私人連結以限制登錄的存取權。 |
基本、標準和進階層都提供相同的程式設計功能。 也可從完全由 Azure 管理的映像儲存體中得到好處。 選擇較高等級的層級可提供更多效能和規模。 由於有多個服務層級,您可以一開始先使用「基本」,再隨著登錄使用量的增加而轉換為「標準」和「進階」。
例如︰
- 如果您購買基本服務層級登錄,它會包含 10 GB 的儲存體。 您在這裡支付的價格是每天 0.167 美元。 價格是根據美元計算的。
- 如果您有基本服務層級登錄並使用 25 GB 的儲存體,則您需要為額外的 15 GB 儲存空間支付 0.003 美元/天*15 = 每天 0.045 美元。
- 因此,根據定價 - Container Registry,具有 25 GB 儲存體的基本 ACR 的定價為每天 0.167 美元+0.045 美元= 0.212 美元,以及網路、組建等其他相關費用。
服務層級功能和限制
下表詳述「基本」、「標準」和「進階」服務層級的功能和登錄限制。
資源 | 基本 | Standard | Premium |
---|---|---|---|
包含的儲存體1 (GiB) | 10 | 100 | 500 |
儲存體限制 (TiB) | 40 | 40 | 40 |
映像層大小上限 (GiB) | 200 | 200 | 200 |
資訊清單大小上限 (MiB) | 4 | 4 | 4 |
每分鐘的 ReadOps2, 3 | 1,000 | 3,000 | 10,000 |
每分鐘的 WriteOps2, 4 | 100 | 500 | 2,000 |
下載頻寬 2 (Mbps) | 30 | 60 | 100 |
上傳頻寬 2 (Mbps) | 10 | 20 | 50 |
Webhooks | 2 | 10 | 500 |
異地複寫 | N/A | N/A | 支援 |
可用性區域 | N/A | N/A | 支援 |
內容信任 | N/A | N/A | 支援 |
具有私人端點的私人連結 | N/A | N/A | 支援 |
• 私人端點 | N/A | N/A | 200 |
公用 IP 網路規則 | N/A | N/A | 100 |
服務端點 VNet 存取 | N/A | N/A | 預覽 |
• 虛擬網路規則 | N/A | N/A | 100 |
客戶管理的金鑰 | N/A | N/A | 支援 |
存放庫範圍的權限 | 支援 | 支援 | 支援 |
• 權杖 | 100 | 500 | 50,000 |
• 範圍對應 | 100 | 500 | 50,000 |
• 動作 | 500 | 500 | 500 |
• 每個範圍對應的存放庫5 | 500 | 500 | 500 |
匿名提取存取 | N/A | 預覽 | 預覽 |
1 每一層的每日費率包含的儲存體。 可以使用額外的儲存體,每個 GiB 需要額外的每日費率,以登錄儲存體限制為上限。 如需費率資訊,請參閱 Azure Container Registry 定價。 如果您需要的儲存體超過登錄儲存體上限,請連絡 Azure 支援。
2ReadOps、WriteOps 和「頻寬」是最小預估值。 Azure Container Registry 致力於改善需要使用時的效能。 資源、ACR 和裝置都必須位於相同的區域,才能實現快速下載速度。
3docker pull 會根據映像中的圖層數目以及資訊清單擷取,來轉譯為多個讀取作業。
4docker push 會根據必須推送的圖層數目,來轉譯為多個寫入作業。 docker push
包含 ReadOps,以擷取現有映像的資訊清單。
5 content/delete
、content/read
、content/write
、metadata/read
、metadata/write
的個別動作對應至每個範圍對應的存放庫限制。
登錄輸送量和節流
輸送量
在產生高速率的登錄作業時,請使用服務層級的讀取和寫入作業以及頻寬限制,做為預期最大輸送量的指南。 這些限制會影響資料平面作業,包括列出、刪除、推送和提取映像和其他成品。
若要特別估計映像提取和推送的輸送量,請考量登錄限制和下列因素:
- 影像圖層的數目和大小
- 跨映像重複使用圖層或基底映像
- 每次提取或推送都可能需要的額外的 API 呼叫
如需詳細資訊,請參閱 Docker HTTP API V2的文件。
當針對登錄輸送量進行評估或疑難排解時,也請考慮用戶端環境的組態:
- 並行作業的 Docker 精靈組態
- 您與登錄資料端點的網路連線 (如果您的登錄受到異地複寫,則可能會有多個端點)。
如果您遇到登錄輸送量的問題,請參閱針對登錄效能進行疑難排解。
範例
將單一 133 MB 的 nginx:latest
映像推送至 Azure 容器登錄需要針對映像五個圖層的多重讀取和寫入作業:
- 如果映像資訊清單存在於登錄中,那麼請讀取作業以便讀取映像資訊清單
- 寫入作業以便寫入映像的組態 Blob
- 寫入作業以便寫入映像資訊清單
節流
當登錄判斷要求速率超過登錄服務層級所允許的限制時,您可能會遇到提取或推送作業的節流。 您可能會看到類似 Too many requests
的 HTTP 429 錯誤。
當您在非常短時間內產生暴增的映像提取或推送作業時,即使讀取和寫入作業的平均速率沒有超過登錄限制,系統也會暫時進行節流。 您可能需要在程式碼中使用一些輪詢來實作重試邏輯,或降低登錄要求的最大速率。
顯示登錄使用量
使用 Azure CLI 中的 az acr show-usage 命令、Azure PowerShell 中的 Get-AzContainerRegistryUsage 或列出使用量 REST API,以針對您登錄目前耗用的儲存體和其他資源量取得快照集,並與該登錄服務層級的限制進行比較。 儲存體使用量也會出現在入口網站的登錄 [概觀] 頁面上。
使用量資訊可協助您決定在登錄快達到限制時是否變更服務層級。 這項資訊也可協助您管理使用量。
注意
您應該只將登錄的儲存體使用量當做一項指南來參考,而且該使用量可能不會反映最近的登錄作業。 監視登錄的 StorageUsed 計量,以便取得最新的資料。
根據登錄的服務層級,使用量資訊會包含下列項目 (部分或全部),以及該層級的限制:
1在異地複寫登錄中,會針對主區域顯示儲存體使用量。 乘上所耗用儲存體總數的複寫數目。
變更層級
您可以使用 Azure CLI 或在 Azure 入口網站中變更登錄的服務層級。 您可以自由地改用其他層級,只要您所要改用的目標層級具有所需的最大儲存容量即可。
當您在服務層級之間移動時,登錄作業不會停機或影響登錄作業。
Azure CLI
若要在 Azure CLI 中改用其他服務層級,請使用 az acr update 命令。 例如,若要改用進階:
az acr update --name myContainerRegistry --sku Premium
Azure PowerShell
若要在 Azure PowerShell 中的服務層級之間移動,請使用 Update-AzContainerRegistry Cmdlet。 例如,若要改用進階:
Update-AzContainerRegistry -ResourceGroupName myResourceGroup -Name myContainerRegistry -Sku Premium
Azure 入口網站
在 Azure 入口網站的容器登錄 [概觀] 中,選取 [更新],然後從 SKU 下拉式清單中選取新的 SKU。
定價
如需每個 Azure Container Registry 服務層級的定價資訊,請參閱容器登錄定價。
如需資料傳輸定價的詳細資訊,請參閱頻寬定價詳細資料。
下一步
Azure Container Registry 藍圖
請瀏覽 GitHub 上的 ACR Roadmap ACR 藍圖),以尋找服務中即將推出功能的相關資訊。
Azure Container Registry UserVoice
送出並票選 ACR UserVoice 中的新功能建議。