本文介绍了 Azure Kubernetes 服务 (AKS) 中结合 Azure 容器注册表 (ACR) 使用的制品流式传输概述。 Artifact Streaming 可将容器映像从 ACR 流式传输到 AKS,这样在 Pod 初始启动时,只需拉取必要的层。 此功能减少了部署工作负荷所需的时间。
工件流式传输如何工作?
在标准容器启动中,Kubernetes 会在工作负载启动之前下载所有映像层。 此过程对于大型映像或启动多个 Pod 可能需要一段时间。
AKS 上的项目流式处理通过仅检索初始 Pod 启动所需的层来更改此行为。 运行时会根据需要稍后检索剩余数据。 此功能使用 OverlayBD,它将容器映像层转换为虚拟块设备。 运行时可以在块级别访问数据,而不是下载完整映像。 采用这种方法,你只会检索在启动和运行期间访问的块。 如果应用程序仅使用映像的一部分,则仅拉取该部分。
注释
AKS 上的制品流式传输 仅支持按标记拉取映像。
Artifact Streaming 的工作原理是将按标签拉取的镜像解析为该镜像的流式传输变体。 如果使用摘要来拉取镜像,就无法使用 Artifact Streaming。
优点和用例
借助 AKS 上的制品流式传输功能,你可以:
- 跨多个区域部署容器化应用程序:将容器映像从单个Azure容器注册表流式传输到不同区域中的 AKS 群集。 此方法减少了复制映像所需的时间和资源。
- 缩短 Pod 就绪时间:在下载完整映像之前启动 Pod,这可以减少 Pod 就绪时间(尤其是大型映像)。
- 提高缩放效率:通过在创建或缩放多个 Pod 时减少启动延迟来支持大规模部署。
- 优化大型镜像的启动:缩短那些在启动时不需要所有镜像层的工作负载的初始化时间,例如容器化的有状态工作负载(如 Java 或 C# 应用程序),或者其依赖项已预置到镜像中、但在 Pod 启动时并不立即需要的工作负载。
Considerations
在 AKS 上使用构件流式传输时,请牢记以下注意事项:
- 在启动时需要读取文件的读取密集型镜像,无法从 Artifact Streaming 中获益。 如果 Pod 需要访问大型文件(>30 GB),请将其装载为卷,而不是将其构建为层。 如果 Pod 需要该文件才能启动,就会拖慢该节点。
- 您可以在新的或现有的容器注册表中,为特定存储库或标签启动制品流式传输。
- 通过启动制品流送功能,可以将原始制品和流送制品都存储在 ACR 中。
- 即使为存储库或构件关闭了构件流式传输,您仍可以访问原始构件和流式构件。
- 如果启用项目流式处理和软删除并删除存储库或项目,将同时删除原始版本和项目流版本。 但是,软删除门户上仅提供原始版本。
相关内容
若要开始使用 AKS 上的项目流式处理,请参阅通过 Azure 容器注册表 (ACR) 在Azure Kubernetes 服务 (AKS)上启用项目流式处理。