Share via


Azure Container Registry 中的成品串流 (預覽)

成品串流是 Azure Container Registry 中的一項功能,可讓您將容器映像儲存在單一登錄內、管理和將容器映像串流至多個區域中的 Azure Kubernetes Service (AKS) 叢集。 這項功能的設計目的是使用 AKS 加速 Azure 客戶的容器化工作負載。 使用成品串流,您可以輕鬆地縮放工作負載,而不需要等待節點的緩慢提取時間。

使用案例

以下是使用成品串流的幾個案例:

將容器化應用程式部署到多個區域: 使用成品串流,您可以將容器映像儲存在單一登錄內,並將容器映像管理及串流至多個區域中的 AKS 叢集。 成品串流會將容器應用程式部署到多個區域,而不需要耗費時間和資源。

減少映像提取延遲:成品串流可根據映像的大小,減少Pod整備時間超過15%,而且最適合映像 < 30 GB。 這項功能可減少映像提取延遲和快速容器啟動,這對軟體開發人員和系統架構師都很有幫助。

有效縮放容器化應用程式: 成品串流可讓您以高規模設計、建置及部署容器化應用程式。

成品串流層面

以下是成品串流的一些簡要層面:

  • 具有新和現有登錄的客戶可以啟動特定存放庫或標記的成品串流。

  • 客戶能夠藉由啟動成品串流,將原始和串流成品儲存在 ACR 中。

  • 即使關閉存放庫或成品的成品串流處理,客戶仍可存取原始和串流成品。

  • 已啟用成品串流和虛刪除的客戶會刪除存放庫或成品,然後刪除原始和成品串流版本。 不過,虛刪除入口網站上只能使用原始版本。

可用性和價格資訊

成品串流僅適用於 進階版 服務層(也稱為 SKU)。 成品串流可能會增加整體登錄記憶體耗用量。 如果耗用量超過包含的 500 GiB 進階版 SKU 閾值,則客戶會受到價格中所述的更多記憶體費用。

預覽限制

成品串流目前為預覽狀態。 適用下列限制:

  • 預覽版本中僅支援使用 Linux AMD64 結構的映像。
  • 預覽版本不支援以 Windows 為基礎的容器映像和 ARM64 映像。
  • 預覽版本僅支援 AMD64 架構的多架構映像。
  • 若要在 AKS 中建立以 Ubuntu 為基礎的節點集區,請選擇 Ubuntu 20.04 版或更高版本。
  • 針對 Kubernetes,請使用 Kubernetes 1.26 版或更高版本或 Kubernetes > 1.25 版。
  • 只有進階 SKU 登錄支援在預覽版本中產生串流成品。 非premium 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 命令,以啟動 ACR 中存放 jupyter/all-spark-notebook 庫的 mystreamingtest autoconversion。

    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
    
  5. 驗證轉換狀態之後,您現在可以連線到 AKS。 請參閱 AKS 檔

  6. 從存放庫關閉串流成品。

    例如,執行 az acr artifact-streaming update 命令,以刪除 ACR 中映射的mystreamingtest串流成品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 入口網站 中建立成品串流的步驟。

  1. 瀏覽至您的 Azure Container Registry。

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

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

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

    醒目提示 [建立串流成品] 按鈕的 Azure 入口網站 螢幕快照。

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

    已醒目提示串流成品的 Azure 入口網站 螢幕快照。

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

    已醒目提示 [刪除成品串流] 按鈕的 Azure 入口網站 螢幕快照。

  7. 您也可以在入口網站上存取存放庫來啟用自動轉換。 作用中表示會在存放庫上啟用自動轉換。 非使用中表示在存放庫上停用自動轉換。

    醒目提示 [開始成品串流] 按鈕的 Azure 入口網站 螢幕快照。

注意

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

下一步