传统容器运行需要将全量镜像数据下载后再解包,然而容器启动可能仅使用其中部分的内容,导致容器启动耗时长。通过容器镜像服务企业版的按需加载功能,您可以在业务部署中使用加速镜像版本,实现镜像数据免全量下载和在线解压,大幅提升应用分发效率,享受极致的弹性体验。本文介绍如何按需加载容器镜像。
前提条件
- 已创建ACK集群。更多信息,请参见创建Kubernetes托管版集群。
说明 仅支持在版本≥1.16.9的托管版和专有版集群上使用加速镜像。且创建集群时需要设置容器运行时为Docker运行时,操作系统为Aliyun linux 2.1903、CentOs7.6、CentOs7.7、CentOs7.8、CentOs7.9。
- 已创建企业版实例,更多信息,请参见创建企业版实例。
- 已在企业版实例中配置ACK集群对应的专有网络。加速镜像需要在专有网络中使用,更多信息,请参见配置专有网络的访问控制。
背景信息
通过容器镜像服务企业版的按需加载功能,您可以在业务部署中使用加速镜像版本,实现镜像数据免全量下载和在线解压,大幅提升应用分发效率,享受极致的弹性体验。镜像的加速效果与镜像大小、镜像仓库网络等因素有关。经实测,基于Docker
Hub的nodebb镜像(1.34 GB)启动应用在镜像拉取阶段需耗费36s,整体应用启动时间38s。基于加速镜像启动应用在镜像拉取阶段仅需4s,整体应用启动时间仅需9s。
地域限制
当前只有华东1(杭州)、华东2(上海)、华北2(北京)、美国(硅谷)、美国(弗吉尼亚)地域支持按需加载功能。
转换加速镜像
目前支持仓库级别配置,自动将推送的原始镜像转换为加速镜像。镜像转换时间取决于您的镜像大小,原始镜像不受任何影响。
说明 加速镜像的命名空间和仓库名称与原始镜像保持一致,tag格式为原始镜像tag加_accelerated后缀。
- 登录容器镜像服务控制台。
- 在顶部菜单栏,选择所需地域。
- 在左侧导航栏,选择实例列表。
- 在实例列表页面单击目标企业版实例。
- 在企业版实例管理页左侧导航栏中选择。
- 在镜像仓库页面单击目标镜像仓库名称或目标镜像仓库右侧操作列下的管理。
- 在基本信息页面左上角单击编辑。
- 在修改基本信息对话框中选中镜像加速复选框,单击确定。
在完成镜像加速转换设置后,您后续推送的镜像将自动触发镜像转换任务。若您希望接收镜像转换完成的通知,可以配置表达式触发器。例如将表达式设置为
_accelerated$
,更多信息,请参见
触发器管理。
安装镜像加速组件
为了启动加速容器,需要在Worker节点安装按需加载相关的镜像存储插件。
- 为节点添加镜像加速标签。
在创建Woker节点时,您可以为节点添加镜像加速标签(alibabacloud.com/image-accelerate-enabled: true),以便在节点初始化时开启镜像加速能力。设置镜像加速标签后,在节点初始化过程中会自动安装镜像存储插件。
说明 加速容器需运行在加速节点上,加速节点可同时支持普通容器与加速容器的运行。
- 安装镜像加速组件。
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面,选择目标集群,并在目标集群右侧操作列下,选择。
- 在组件管理页面其他区域找到aliyun-acr-acceleration-suite,单击右侧的安装。
- 在提示对话框中单击确定。
在集群管理页左侧导航栏中,选择,在守护进程集页面查看组件安装情况,当目标组件的容器组数量显示全部启动完成,表示组件安装成功。
卸载镜像加速组件
- 登录容器服务管理控制台。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏选择。
- 在组件管理页面其他区域找到aliyun-acr-acceleration-suite,单击右侧的卸载。
- 在提示对话框中单击确定。
启用加速镜像
- 设置镜像仓库访问凭证。
- 镜像免密插件方式。
- 若已使用免密插件,且企业版实例的免密配置正确,无需其他操作。
- 若未使用免密插件,您可使用免密插件,更多信息,请参见使用免密组件拉取容器镜像。
- 命令行方式。
创建名称以acr-credential-开头的、类型为kubernetes.io/dockerconfigjson的Secret。
kubectl create secret docker-registry acr-credential-test --docker-server=RegistryVpcDomain --docker-username=UserName --docker-password=Password
- 添加镜像加速标签。
您可以为应用负载添加镜像加速标签,例如Pod、Deployment等。也可以为ACK集群的命名空间设置标签,该命名空间内的所有符合加速条件的应用负载会启用按需加载容器镜像,无需再修改所有符合加速条件的应用负载的YAML文件。根据实际情况选择任一方式添加镜像加速标签。
说明 标签的名称为k8s.aliyun.com/image-accelerate-mode
,值为on-demand
。
设置加速标签后,如果您已完成普通镜像到加速镜像的转换,在相应命名空间内创建和更新pod时,加速组件会自动将Pod的原始镜像地址替换为加速镜像地址,并添加nodeSelector,将Pod调度到加速节点。
在文档使用中是否遇到以下问题
更多建议
匿名提交