Alaya NeW Cloud

镜像加速

用户可通过两种方式实现镜像加速:一是使用Nydusify依赖包结合AlayaNeW自研工具进行镜像格式转换,二是通过服务器自动完成格式转换。具体操作步骤如下。

前提条件

  • 您已开通弹性容器集群,且集群可正常使用。如尚未开通,可参考开通弹性容器集群完成开通。
  • 您已经开通镜像仓库服务,且服务正常可用,如尚未开通,可参考镜像仓库开通及管理完成开通。

操作步骤

Nydusify是一个用于将Docker镜像转换为Nydus镜像格式的工具。Nydus只需要下载运行容器所需的部分文件,而不需要像传统容器镜像那样下载整个镜像。

  1. 点击安装包链接下载适用当前系统的安装包,本示例下载nydus-static-v2.3.1-linux-amd64文件,然后将文件解压到本地,例如下图所示。

    image

  2. 点击下载nydusify文件,然后替换上步同名文件。

  3. 打开终端工具(如:MobaXterm),将替换文件后的文件拷贝至/usr/bin/目录下,例如下图高亮③所示。

    image

    提示

    完成拷贝操作后,您需要检查文件的权限。如果文件没有写入权限,可以运行sudo chmod +x /usr/bin/[文件名]为其添加执行权限,例如上图高亮区域②所示,确保文件具备读写和执行权限。

  4. 运行如下所示的命令,登录到私有镜像仓库,本实践以北京二区为例,例如下图高亮①所示。

    docker login registry.hd-02.alayanew.com:8443 -u [镜像仓库用户名] -p [镜像仓库密码]
  5. 运行如下所示的命令,手动执行Nydus转化命令,例如下图高亮②所示。

    image

    nydusify convert --source [srcImage] --target [srcImage]-nydus
  1. 联系客服开通服务器端镜像加速服务,开通完成后,您在推送完镜像后,服务器将自动完成镜像转换。

    提示

    完成镜像推送后,镜像仓库将同时保留原始镜像和转换后的镜像,您需关注镜像仓库存储空间的使用情况。

镜像加速示例

通过镜像加速服务,可很大程度上节省镜像下载时间,以"Yaml文件方式启动镜像加速任务"测试结果为例,效率提升94%,实验结果为:

  • 使用镜像加速服务,镜像下载时间约为13s(包括等待时间),示例页面如下图所示。

    image

  • 未使用镜像加速服务,镜像下载时间约为328s(包括等待时间),示例页面如下图所示。

    image

镜像概览

  • 本次示例使用镜像为:mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easycv/torch_cuda:cogvideox_fun
  • 镜像大小:12.1G
  • 本次示例操作所选智算中心为:北京二区

操作详情

  1. 下载nydus-static-v2.3.1-linux-amd64文件,将文件解压到本地,然后下载nydusify文件,替换解压文件中的同名文件。

  2. 打开MobaXterm,将替换文件后的文件拷贝至/usr/bin/目录下,确保文件拥有读写权限,若权限不足,可参考"操作步骤"1提示部分。

  3. 登录已开通镜像加速的私有镜像仓库,如下图高亮①所示,在镜像仓库运行镜像转换命令,如下图高亮②所示。

    image

  4. 使用Yaml文件方式启动镜像下载任务、通过Aladdin创建Workshop拉取对应镜像两种方式查看转换后、前的镜像下载耗时,详情如下所示。

  1. 下载Deployment测试文件,解压该文件,复制文件至对应终端对应目录下,将弹性容器集群文件移动至对应目录下,并连接VKS(弹性容器集群),例如下图所示。

    image

  2. 运行如下所示的命令部署一个访问私有镜像仓库的应用,如上图高亮②所示,获取已启动Pod名称,运行kubectl describe pod [pod name] -n sxh查看Pod详细状态、事件日志等信息,如上图高亮④所示。查看Pod事件,本次示例拉取镜像耗时约13s,例如下图所示。

    image

    kubectl apply -f [yaml文件] -n [namespace]

    提示

    参照本示例进行操作时,如需获取密钥,可参看创建并使用密钥章节中的说明。

  3. 移除Deployment测试文件中的Tag,如下图所示,以拉取未转换过的镜像,重新执行步骤6,然后观察Pod事件,此次拉取镜像耗时约328s,例如下图所示。

    image

提示

通过Aladdin验证启动前,需要下载、登录Aladdin插件,VSCode/Cursor安装Aladdin插件(扩展区搜索“Aladdin”可获取插件)。

  1. 登录Aladdin后,单击Back to workspace按钮,进入功能区页面,单击WORKSHOP功能区的新建WorkShop菜单项,进入参数配置页面,例如下图所示。

    image

  2. 环境配置处选择转换过的镜像,如上图高亮①所示,参数填写完成后,单击Submit按钮,在终端查看Pod详细状态、事件日志等信息,部分事件日志如下所示,镜像拉取耗时1.67s。

    Events:
        Type    Reason          Age   From               Message
        ----    ------          ----  ----               -------
        Normal  Scheduled       59s   default-scheduler  Successfully assigned sxh/workshop-8f891a19-6c1c-4dd5-a69e-35d141cc281a to hd02-gpu1-0031
        Normal  AddedInterface  57s   multus             Add eth0 [172.19.120.165/32] from k8s-pod-network
        Normal  Pulling         56s   kubelet            Pulling image "registry.hd-02.alayanew.com:8443/alayanew-4fd285c4-c4f3-4e92-80ee-26169717cba8/llamafactory-online:1.1-nydus"
        Normal  Pulled          55s   kubelet            Successfully pulled image "registry.hd-02.alayanew.com:8443/alayanew-4fd285c4-c4f3-4e92-80ee-26169717cba8/llamafactory-online:1.1-nydus" in 1.671s (1.671s including waiting). Image size: 14817441081 bytes.
        Normal  Created         54s   kubelet            Created container: code
        Normal  Started         34s   kubelet            Started container code
  3. 新建一个Workshop,在环境配置处选择未转换过的镜像(原始镜像),如上图高亮②所示,参数填写完成后,单击Submit按钮,在终端查看Pod详细状态、事件日志等信息,根据事件日志获取镜像拉取耗时,镜像拉取耗时245s。

    Events:
         Type    Reason          Age    From               Message
        ----    ------          ----   ----               -------
        Normal  Scheduled       9m40s  default-scheduler  Successfully assigned sxh/workshop-d1555177-6f39-4d8d-9987-fac335ed6dcf to hd02-gpu1-0008
        Normal  AddedInterface  9m37s  multus             Add eth0 [172.19.183.207/32] from k8s-pod-network
        Normal  Pulling         9m36s  kubelet            Pulling image "registry.hd-02.alayanew.com:8443/alayanew-4fd285c4-c4f3-4e92-80ee-26169717cba8/llamafactory-online:1.1"
        Normal  Pulled          5m31s  kubelet            Successfully pulled image "registry.hd-02.alayanew.com:8443/alayanew-4fd285c4-c4f3-4e92-80ee-26169717cba8/llamafactory-online:1.1" in 4m5.254s (4m5.254s including waiting). Image size: 16129657861 bytes.
        Normal  Created         5m31s  kubelet            Created container: code
        Normal  Started         5m31s  kubelet            Started container code

结论

在同等条件下,通过上述示例可以看出,使用镜像加速能够显著提升镜像的下载和拉取效率,大幅缩短耗时。

Last updated on

Was this page helpful?

On this page