共用方式為


使用 Azure Kubernetes Service (AKS) 上的工件串流來減少映像拉取時間 (預覽)

高效能計算工作負載通常牽涉到大型映像,可能會導致較長的映像提取時間,並降低工作負載部署的速度。 AKS 上的成品串流可讓您將容器映像從 Azure Container Registry (ACR) 串流至 AKS。 AKS 只會提取初始 Pod 啟動所需的層次,減少提取映像和部署工作負載所需的時間。

根據映像的大小,成品串流可縮短 Pod 整備時間超過 15%,而且最適合 <30GB 映像。 根據我們的測試,我們看到 <10GB 映像的啟動時間從數分鐘減少到數秒鐘。 如果您有需要存取大型檔案 (>30GB) 的 Pod,則您應該將其掛接為磁碟區,而不是將它建置為層。 這是因為如果您的 Pod 需要該檔案才能啟動,它會造成節點擁塞。 成品串流並不適合在啟動時從您的檔案系統讀取大量映像。 使用 Artifact 串流時,Pod 啟動會變成並行,而若未使用 Artifact 串流,Pod 會以序列方式啟動。

本文說明如何在 AKS 節點集區上啟用成品串流功能,以從 ACR 串流成品。

重要

AKS 預覽功能可透過自助服務,以加入方式使用。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

附註

對於先前使用 Teleport (預覽) 的客戶,建議改用成品串流 (預覽)。

  • AKS 上的遠端傳輸(預覽)將於 2025 年 7 月 15 日淘汰,請移轉至 AKS 上的成品串流(預覽版),或更新您的節點集區以設定 --aks-custom-headers EnableACRTeleport=false。 Azure Container Registry 已移除 Teleport API,這表示任何已啟用 Teleport 的節點都會從 Azure Container Registry 提取映像,就像沒有 Teleport 的任何其他 AKS 節點一樣。 2025 年 7 月 15 日之後,已啟用 Teleport (預覽版) 的 AKS 節點集區可能會遇到中斷和節點布建失敗。 如需詳細資訊,請參閱 aka.ms/aks/teleport-retirement

必要條件

附註

Artifact Streaming 只支援 Ubuntu 22.04、Ubuntu 20.04 和 Azure Linux 節點集區。 不支援 Windows 節點集區。

安裝 aks-preview CLI 擴充功能

  1. 使用 aks-preview 命令安裝 az extension add CLI 擴充功能。

    az extension add --name aks-preview
    
  2. 更新擴充功能,以確保您已使用 az extension update 命令安裝最新版本。

    az extension update --name aks-preview
    

在您的訂用帳戶中註冊 ArtifactStreamingPreview 功能旗標

  • 使用 ArtifactStreamingPreview 命令,在您的訂用帳戶中註冊 az feature register 功能旗標。

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

在 ACR 上啟用成品串流

ACR 上的啟用是 AKS 上成品串流的必要條件。 如需詳細資訊,請參閱 ACR 上的成品串流

  1. 使用 az group create 命令建立 Azure 資源群組來保存您的 ACR 實例。

    az group create --name myStreamingTest --location westus
    
  2. 使用具有 az acr create 旗標的 --sku Premium 命令,建立新的進階 SKU Azure Container Registry。

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. 使用 az configure 命令,為您的訂用帳戶設定預設 ACR 執行個體。

    az configure --defaults acr="mystreamingtest"
    
  4. 使用 az acr import 命令將映像推送或匯入登錄。

    az acr import --source docker.io/jupyter/all-spark-notebook:latest --repository jupyter/all-spark-notebook:latest
    
  5. 使用 az acr artifact-streaming create 命令從映像建立串流成品。

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. 使用 az acr manifest list-referrers 命令確認產生的成品串流。

    az acr manifest list-referrers --name jupyter/all-spark-notebook:latest
    

在 AKS 上啟用成品串流

在新節點集區上啟用成品串流

  • 使用 az aks nodepool add 命令搭配 --enable-artifact-streaming,建立已啟用成品串流的新節點集區。

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

在現有的節點池上啟用工件串流

  • 更新現有的節點池,使用 az aks nodepool update 命令和 --enable-artifact-streaming 啟用產物串流。

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodePool \
        --enable-artifact-streaming
    

檢查成品串流是否已啟用

現在您已在高級 ACR 上啟用成品串流,並將其連接到啟用了成品串流的 AKS 節點池,這個叢集上任何新的 Pod 部署如果從啟用了成品串流的 ACR 中提取映像,都會看到映像提取時間的縮短。

  • 檢查您的節點集區是否已啟用 Artifact Streaming 串流,方法是使用 az aks nodepool show 命令。

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name myNodePool --query artifactStreamingProfile
    

    在輸出中,檢查 Enabled 欄位是否設定為 true

下一步

本文說明如何在 AKS 節點集區上啟用成品串流,以從 ACR 串流成品並減少映像提取時間。 若要深入瞭解在 AKS 中使用容器映像,請參閱 AKS 中容器映像管理和安全性的最佳做法