在Azure Kubernetes 服务 (AKS) 上使用Artifact Streaming优化映像拉取时间
一般情况下,当在AKS中运行高性能计算的工作负载时通常会涉及到Size较大的容器映像。在实际的使用场景中,对于这类工作负载的部署有极大的可能性会遇到因为映像拉取时间长并拖慢工作负载部署速度的场景。通过 AKS 上的Artifact Streaming功能,可将容器映像从 Azure 容器注册表 (ACR) 流式传输到 AKS。 AKS 只拉取初始 Pod 启动所需的层,从而缩短拉取映像和部署工作负载所需的时间。

主要优点
- 更快的部署:Artifact Streaming 可以将 Pod 就绪时间缩短 15% 以上,尤其是对于小于 30GB 的映像。
- 并发 Pod 启动:Pod 可以并发启动,而不是串行启动,从而提高部署效率。
- 优化的资源使用:通过减少拉取大型图像所需的时间来帮助避免拥塞。
先决条件
在启用 Artifact Streaming 之前,需要确保已经满足如下先决条件:
- 具有 ACR 集成的现有 AKS 群集。
- Kubernetes 版本 1.25 或更高版本。
- Ubuntu 22.04、Ubuntu 20.04 或 Azure Linux 节点池(不支持Windows 节点池)
部署指南
安装CLI扩展
首先,需要使用 az extension add 命令安装 aks-preview CLI 扩展:

扩展安装完成后,需要将其更新到最新的版本:

注册 ArtifactStreamingPreview 功能
接下来需要使用命令在订阅中注册ArtifactStreamingPreview 功能标志,具体如下:

在 ACR 上启用项目流式处理
若要使用此功能,需要现在ACR上启用项目流式处理。需要注意的是,项目流式处理目前只在高级版的ACR上受支持。所以需要确保ACR的版本为高级版。
本次演示中,已经提前准备了一个高级版的ACR:

使用 az acr artifact-streaming create 命令根据映像创建流项目:

使用 az acr manifest list-referrers 命令验证所生成的项目流式处理:

在 AKS 上启用项目流式处理
使用带有 --enable-artifact-streaming 的 az aks nodepool update 命令更新现有节点池以启用项目流式处理。
验证 Artifact Streaming
检查是否启用了 Artifact Streaming:

所有评论(0)