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 撰寫,而且可以在互動式模式中執行。 請注意,在執行命令之前,應該以實際值取代預留位置。

  1. 透過下列方式,使用進階 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
    
  2. 透過下列方式,將映像推送或匯入登錄:

    例如,執行 [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
    
  3. 從映像建立成品串流

    從指定的映像起始串流成品的建立。

    例如,執行 [az acr artifact-streaming create] 命令,從 mystreamingtest ACR 中的 jupyter/all-spark-notebook:latest 映像建立串流成品。

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    

注意

作業識別碼會在流程期間產生,以供日後參考,以確認作業的狀態。

  1. 在 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
    
  2. 取消成品串流建立 (如有需要)

    如果轉換尚未完成,請取消串流成品建立。 它會停止作業。

    例如,執行 [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
    
  3. 在存放庫上啟動自動轉換

    針對新推送或匯入的映像,在存放庫中啟動自動轉換。 啟動時,推送至該存放庫的新映像將會觸發串流成品的產生。

    注意

    自動轉換不適用於現有的映像。 現有的映像可以手動轉換。

    例如,執行 [az acr artifact-streaming update] 命令,以啟動 mystreamingtest ACR 中 jupyter/all-spark-notebook 存放庫的自動轉換。

    az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming true
    
  4. 將新的映像 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
    

注意

不論是否啟動異地復寫,成品串流都可以跨區域運作。 成品串流可以透過私人端點運作,並附加至該端點。

推送/匯入映像並產生串流成品 - Azure 入口網站

進階SKU Azure Container Registry中提供成品串流。 若要啟動成品串流,請使用 Azure 入口網站更新登錄。

請遵循在 Azure 入口網站 中建立成品串流的步驟。

  1. 瀏覽至您的 Azure Container Registry。

  2. 在側邊 [功能表],在 [服務] 下選取 [存放庫]

  3. 選取最新的匯入映像。

  4. 轉換映像,並在 Azure 入口網站中建立成品串流。

    A screenshot of Azure portal with the create streaming artifact button highlighted.

  5. 在 [引用者] 索引標籤中檢查從影像產生的串流成品。

    A screenshot of Azure portal with the streaming artifact highlighted.

  6. 您也可以從存放庫刀鋒視窗刪除成品串流。

    A screenshot of Azure portal with the delete artifact streaming button highlighted.

  7. 您也可以在存放庫刀鋒視窗上啟用自動轉換。 作用中表示會在存放庫上啟用自動轉換。 作用中表示會在存放庫上停用自動轉換。

    A screenshot of Azure portal with the start artifact streaming button highlighted.

注意

存放庫中成品串流的狀態 (非使用中或作用中) 會決定是否會自動轉換新推送的相容映像。 根據預設,所有存放庫都處於非作用中狀態,以供成品串流使用。 這表示當新的相容映像推送至存放庫時,不會觸發成品串流,而且不會自動轉換映像。 如果您想要開始自動轉換新推送的映像,您必須將存放庫的成品串流設定為作用中狀態。 一旦存放庫處於作用中狀態,任何推送至存放庫的新相容容器映像都會觸發成品串流。 這會啟動這些影像的自動轉換。

下一步