使用 Azure Kubernetes Service 上的成品串流來減少映像提取時間 (AKS) (預覽)
高效能計算工作負載通常牽涉到大型映像,可能會導致較長的映像提取時間,並降低工作負載部署的速度。 AKS 上的成品串流可讓您將容器映像從 Azure Container Registry (ACR) 串流至 AKS。 AKS 只會提取初始 Pod 啟動所需的層次,減少提取映像和部署工作負載所需的時間。
根據映像的大小,成品串流可縮短 Pod 整備時間超過 15%,而且最適合 <30GB 映像。 根據我們的測試,我們看到 <10GB 映像的啟動時間從數分鐘減少到數秒鐘。 如果您有需要存取大型檔案 (>30GB) 的 Pod,則您應該將其掛接為磁碟區,而不是將它建置為層。 這是因為如果您的 Pod 需要啟動該檔案,它會佔用節點。 成品串流並不適合在啟動時從您的檔案系統讀取大量映像。 使用成品串流時,Pod 啟動會變成並行,而若未使用成品串流,Pod 會以序列方式啟動。
本文說明如何在 AKS 節點集區上啟用成品串流功能,以從 ACR 串流成品。
重要
AKS 預覽功能可透過自助服務,以加入方式使用。 預覽會以「現狀」和「可供使用時」提供,其其不受服務等級協定和有限瑕疵擔保所保護。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:
必要條件
- 您需要具有 ACR 整合的現有 AKS 叢集。 如果您沒有帳戶,您可以使用從 AKS 使用 ACR 驗證來建立一個。
- 在 ACR 上啟用成品串流。
- 此功能需要 Kubernetes 1.25 版或更新版本。 若要檢查您的 AKS 叢集版本,請參閱檢查是否有可用的 AKS 叢集升級。
注意
只有 Ubuntu 22.04、Ubuntu 20.04 和 Azure Linux 節點集區才支援成品串流。 不支援 Windows 節點集區。
安裝 aks-preview
CLI 擴充功能
使用
az extension add
命令安裝aks-preview
CLI 擴充功能。az extension add --name aks-preview
更新擴充功能,以確保您已使用
az extension update
命令安裝最新版本。az extension update --name aks-preview
在您的訂用帳戶中註冊 ArtifactStreamingPreview
功能旗標
使用
az feature register
命令,在您的訂用帳戶中註冊ArtifactStreamingPreview
功能旗標。az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
在 ACR 上啟用成品串流
ACR 上的啟用是 AKS 上成品串流的必要條件。 如需詳細資訊,請參閱 ACR 上的成品串流。
使用
az group create
命令建立 Azure 資源群組來保存您的 ACR 實例。az group create --name myStreamingTest --location westus
使用具有
--sku Premium
旗標的az acr create
命令,建立新的進階 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 部署都會看到映像提取時間降低。
檢查您的節點集區是否使用
az aks nodepool show
命令啟用成品串流。az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name myNodePool --query artifactStreamingProfile
在輸出中,檢查
Enabled
欄位是否設定為true
。
下一步
本文說明如何在 AKS 節點集區上啟用成品串流,以從 ACR 串流成品並減少映像提取時間。 若要深入瞭解在 AKS 中使用容器映像,請參閱 AKS 中容器映像管理和安全性的最佳做法。