高效能計算工作負載通常牽涉到大型映像,可能會導致較長的映像提取時間,並降低工作負載部署的速度。 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。
必要條件
- 您需要具有 ACR 整合的現有 AKS 叢集。 如果您沒有帳戶,您可以使用從 AKS 使用 ACR 驗證來建立一個。
- 在 ACR 上啟用工件串流。
- 此功能需要 Kubernetes 1.25 版或更新版本。 若要檢查您的 AKS 叢集版本,請參閱檢查是否有可用的 AKS 叢集升級。
附註
Artifact Streaming 只支援 Ubuntu 22.04、Ubuntu 20.04 和 Azure Linux 節點集區。 不支援 Windows 節點集區。
安裝 aks-preview
CLI 擴充功能
使用
aks-preview
命令安裝az extension add
CLI 擴充功能。az extension add --name aks-preview
更新擴充功能,以確保您已使用
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 上的成品串流。
使用
az group create
命令建立 Azure 資源群組來保存您的 ACR 實例。az group create --name myStreamingTest --location westus
使用具有
az acr create
旗標的--sku Premium
命令,建立新的進階 SKU Azure Container Registry。az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
使用
az configure
命令,為您的訂用帳戶設定預設 ACR 執行個體。az configure --defaults acr="mystreamingtest"
使用
az acr import
命令將映像推送或匯入登錄。az acr import --source docker.io/jupyter/all-spark-notebook:latest --repository jupyter/all-spark-notebook:latest
使用
az acr artifact-streaming create
命令從映像建立串流成品。az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
使用
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 中容器映像管理和安全性的最佳做法。