Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
大型容器映像可以增加映像拉取时间和延迟工作负荷部署。 项目流式处理允许将容器映像从 Azure 容器注册表 (ACR) 流式传输到Azure Kubernetes 服务 (AKS)。 AKS 仅拉取 Pod 首次启动时所需的层,从而缩短部署工作负载所需的时间。
本文介绍如何在 AKS 节点池上启用和禁用项目流式处理功能,以流式传输 ACR 中的项目。
先决条件
- 一份 Azure 订阅。 如果没有Azure订阅,可以创建 Trial。
- 在 ACR 上启用项目流式处理。
- Azure CLI 2.87.0 或更高版本。 运行
az --version即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 - 此功能需要 Kubernetes 1.25 或更高版本。 若要检查 AKS 群集版本,请参阅 检查可用的 AKS 群集升级。
- 已集成 ACR 的现有 AKS 集群。 如果没有,可使用来自 AKS 的 ACR 进行身份验证来创建一个。
- 若要修改节点池配置,则需要Azure Kubernetes 服务 参与者角色。
局限性
- 仅支持具有 Linux AMD64 体系结构的映像。
- 不支持基于Windows的容器映像和 ARM64 映像。
- 多体系结构映像仅支持 AMD64 体系结构。
- AKS 中基于 Ubuntu 的节点池必须使用 Ubuntu 20.04 或更高版本。
- 仅支持高级 SKU ACR 注册表。
- 注册表不支持 CMK(客户管理的密钥)。
- 不支持 Kubernetes
regcred,例如imagePullSecrets。 使用 非 Entra 作用域映射令牌凭据 或 ACR 管理员用户凭据 从 ACR 拉取映像时,默认不会使用工件流式传输拉取,即使节点池和映像已启用流式传输也是如此。 - 制品流式传输仅支持通过标签拉取镜像。 Artifact Streaming 的工作原理是将按标签拉取的镜像解析为该镜像的流式传输变体。 如果图像拉取是通过摘要完成的,则无法使用项目流式处理。
在 ACR 上启用项目流式处理
使用
az group create命令创建 Azure 资源组来保存 ACR 实例。az group create --name myStreamingTest --location chinanorth3使用
az acr create命令并带上--sku Premium标志,创建新的高级 SKU 的 ACR。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 --repository jupyter/all-spark-notebook使用
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 上启用项目流式处理
你可以在启用了 ACR 集成的 AKS 群集中的新节点池或现有节点池上启用构件流式传输。
注释
如果没有与 AKS 群集集成的高级层 ACR,则无法在 AKS 上使用项目流式处理。
在新的节点池上启用项目流式处理
使用带有 az aks nodepool add 标志的 --enable-artifact-streaming 命令创建已启用工件流式传输的新的 AKS 节点池。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
在现有节点池上启用项目流式处理
使用带有 az aks nodepool update 标志的 --enable-artifact-streaming 命令为现有 AKS 节点池启用项目流。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
在现有节点池上禁用制品流式传输
使用带有 az aks nodepool update 标志的 --disable-artifact-streaming 命令,在现有 AKS 节点池中禁用构件流式传输。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--disable-artifact-streaming
检查 Artifact Streaming 启用状态
使用 az aks nodepool show 命令,并将 --query 标志设置为 artifactStreamingProfile,检查 AKS 节点池中是否已启用 Artifact Streaming。
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--query artifactStreamingProfile
在输出中,检查 Enabled 字段。
true 表示已启用项目流,并且 false 意味着项目流被禁用。
相关内容
本文介绍如何在 AKS 节点池上启用和禁用制品流式传输,以便从 ACR 流式传输制品并缩短部署时间。 若要详细了解如何在 AKS 中使用容器映像,请参阅 AKS 中容器映像管理和安全性的最佳做法。