Azure Container Registry 中的成品串流 (預覽)
成品串流是 Azure Container Registry 中的一項功能,可讓您將容器映像儲存在單一登錄內、管理和將容器映像串流至多個區域中的 Azure Kubernetes Service (AKS) 叢集。 這項功能的設計目的是使用 AKS 加速 Azure 客戶的容器化工作負載。 使用成品串流,您可以輕鬆地縮放工作負載,而不需要等待節點的緩慢提取時間。
使用案例
以下是使用成品串流的幾個案例:
將容器化應用程式部署到多個區域: 使用成品串流,您可以將容器映像儲存在單一登錄內,並將容器映像管理及串流至多個區域中的 AKS 叢集。 成品串流會將容器應用程式部署至多個區域,而不需要耗費時間和資源。
減少映像提取延遲: 成品串流可根據映像的大小,縮短 Pod 整備時間超過 15%,而且最適合 < 30GB 的映像。 這項功能可減少映像提取延遲和快速容器啟動,這對軟體開發人員和系統架構師都很有幫助。
有效縮放容器化應用程式: 成品串流可讓您以高規模設計、建置及部署容器化應用程式。
成品串流層面
以下是成品串流的一些簡要層面:
具有新和現有登錄的客戶可以啟動特定存放庫或標記的成品串流。
客戶能夠藉由啟動成品串流,將原始和串流成品儲存在 ACR 中。
即使在關閉存放庫或成品的成品串流處理之後,客戶仍可存取原始和串流成品。
針對已啟用成品串流和虛刪除的客戶,請刪除存放庫或成品,而系統會刪除原始和成品串流版本。 不過,只有原始版本可在虛刪除入口網站上使用。
可用性和價格資訊
成品串流僅適用於進階服務層級 (也稱為 SKU)。 成品串流可能會增加整體登錄儲存體使用量。 如果使用量超過包含的 500 GiB 進階 SKU 閾值,則客戶將需要支付更多儲存體費用,如我們的定價中所述。
預覽限制
成品串流目前為預覽狀態。 適用下列限制:
- 預覽版本中僅支援使用 Linux AMD64 結構的映像。
- 預覽版本不支援以 Windows 為基礎的容器映像和 ARM64 映像。
- 預覽版本部分支援多架構映像,僅支援 AMD64 架構。
- 若要在 AKS 中建立以 Ubuntu 為基礎的節點集區,請選擇 Ubuntu 20.04 版或更高版本。
- 針對 Kubernetes,請使用 Kubernetes 1.26 版或更高版本或 Kubernetes > 1.25 版。
- 只有進階 SKU 登錄支援在預覽版本中產生串流成品。 非進階 SKU 登錄在預覽期間不提供這項功能。
- 預覽版本中不支援 CMK (客戶自控金鑰) 登錄。
- 目前不支援 Kubernetes regcred。
必要條件
您可以使用 Azure Cloud Shell 或安裝在本機的 Azure CLI 來執行此文章中的命令範例。 如果想要在本機使用,則需要 2.54.0 版或更新版本。 執行
az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。登入 Azure 入口網站。
啟動成品串流
使用 Azure CLI 命令和 Azure 入口網站來啟動成品串流,以推送、匯入和產生 Azure Container Registry (ACR) 中容器映像的串流成品。 這些指示概述建立進階SKU ACR、匯入映像、產生串流成品及管理成品串流作業的流程。 請務必視需要以實際值取代預留位置。
推送/匯入映像並產生串流成品 - Azure CLI
進階容器登錄服務層級中提供成品串流。 若要啟動成品串流,請使用 Azure CLI (2.54.0 版或更新版本) 更新登錄。 若要安裝或升級,請參閱安裝 Azure CLI。
依照下列一般步驟啟動成品串流:
注意
如果您已有進階容器登錄,則可跳過此步驟。 如果使用者位於標準 SKU 的基本上,下列命令將會失敗。 程式碼是以 Azure CLI 撰寫,而且可以在互動式模式中執行。 請注意,在執行命令之前,應該以實際值取代預留位置。
透過下列方式,使用進階 SKU 建立新的 Azure Container Registry (ACR):
例如,執行 [az group create] 命令,以在美國西部區域中建立名稱為
my-streaming-test
的 Azure 資源群組,然後執行 [az acr create] 命令,以在該資源群組中建立名稱為mystreamingtest
的進階 Azure Container Registry。az group create -n my-streaming-test -l westus az acr create -n mystreamingtest -g my-streaming-test -l westus --sku premium
透過下列方式,將映像推送或匯入登錄:
例如,執行 [az configure] 命令來設定預設 ACR 和 [az acr import] 命令,將 Jupyter Notebook 映像從 Docker Hub 匯入
mystreamingtest
ACR。az configure --defaults acr="mystreamingtest" az acr import --source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
從映像建立成品串流
從指定的映像起始串流成品的建立。
例如,執行 [az acr artifact-streaming create] 命令,從
mystreamingtest
ACR 中的jupyter/all-spark-notebook:latest
映像建立串流成品。az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
注意
作業識別碼會在流程期間產生,以供日後參考,以確認作業的狀態。
在 Azure CLI 中確認產生的成品串流。
例如,執行 [az acr manifest list-referrers] 命令,以列出
mystreamingtest
ACR 中jupyter/all-spark-notebook:latest
映像的串流成品。az acr manifest list-referrers -n jupyter/all-spark-notebook:latest
取消成品串流建立 (如有需要)
如果轉換尚未完成,請取消串流成品建立。 其會停止作業。
例如,執行 [az acr artifact-streaming operation cancel] 命令,以取消
mystreamingtest
ACR 中jupyter/all-spark-notebook:latest
映像的轉換作業。az acr artifact-streaming operation cancel --repository jupyter/all-spark-notebook --id c015067a-7463-4a5a-9168-3b17dbe42ca3
在存放庫上啟動自動轉換
針對新推送或匯入的映像,在存放庫中啟動自動轉換。 啟動時,推送至該存放庫的新映像會觸發串流成品的產生。
注意
自動轉換不適用於現有的映像。 現有的映像可以手動轉換。
例如,執行 az acr artifact-streaming update 命令,以啟動
mystreamingtest
ACR 中jupyter/all-spark-notebook
存放庫的自動轉換。az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming true
將新的映像
jupyter/all-spark-notebook:newtag
推送至上述存放庫之後,確認串流轉換進度。例如,執行 [az acr artifact-streaming operation cancel] 命令,以取消
mystreamingtest
ACR 中jupyter/all-spark-notebook:newtag
映像的轉換作業。az acr artifact-streaming operation show --image jupyter/all-spark-notebook:newtag
驗證轉換狀態之後,您現在可以連線到 AKS。 請參閱 AKS 文件。
從存放庫關閉串流成品。
例如,執行 az acr artifact-streaming update 命令,以刪除
mystreamingtest
ACR 中jupyter/all-spark-notebook:latest
映像的串流成品。az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming false
注意
不論是否啟動異地復寫,成品串流都可以跨區域運作。 成品串流可以透過私人端點運作,並附加至該端點。
推送/匯入映像並產生串流成品 - Azure 入口網站
進階SKU Azure Container Registry 中提供成品串流。 若要啟動成品串流,請使用 Azure 入口網站更新登錄。
請遵循在 Azure 入口網站 中建立成品串流的步驟。
瀏覽至您的 Azure Container Registry。
在側邊 [功能表],在 [服務] 下選取 [存放庫]。
選取最新的匯入映像。
轉換映像,並在 Azure 入口網站中建立成品串流。
在 [引用者] 索引標籤中檢查從影像產生的串流成品。
您也可以從存放庫刪除成品串流。
您也可以在入口網站上存取存放庫來啟用自動轉換。 作用中表示會在存放庫上啟用自動轉換。 非使用中表示會在存放庫上停用自動轉換。
注意
存放庫中成品串流的狀態 (非使用中或作用中) 會決定是否會自動轉換新推送的相容映像。 根據預設,所有存放庫都處於非作用中狀態,以供成品串流使用。 這表示當新的相容映像推送至存放庫時,不會觸發成品串流,而且不會自動轉換映像。 如果您想要開始自動轉換新推送的映像,您必須將存放庫的成品串流設定為作用中狀態。 一旦存放庫處於作用中狀態,任何推送至存放庫的新相容容器映像都會觸發成品串流。 這會啟動這些影像的自動轉換。