在大规模容器集群中,镜像拉取速度常受容器镜像存储带宽限制。本文介绍如何在 ACR 企业版实例中开启 P2P 模块,并在 ACK 集群(1.33 及以上版本)节点池中安装 ack-p2pagent 组件,利用节点间 P2P 加速镜像分发,从而提升拉取速度、缩短应用部署时间。
背景信息
当大规模容器集群批量下载镜像时,容器镜像存储的网络带宽会成为性能瓶颈,导致镜像拉取缓慢。P2P加速功能可以利用计算节点的带宽资源,在节点之间进行镜像分发,以减少对容器镜像存储的压力,大幅提升镜像拉取速度,减少应用部署时间。
经过测试,1000节点规模下拉取1 GB大小的镜像,相比普通镜像拉取方式(以带宽为10 Gbps为例),P2P加速方式可减少95%以上的镜像拉取时间,且默认支持按需加载容器镜像使用P2P加速。
适用范围
集群为ACK托管或专有集群,且集群版本为1.33或更高。
集群节点的containerd版本为2.1.4或更高。
仅适用于ACR企业版实例标准版或高级版。
步骤一:开启P2P模块并获取P2P访问IP
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择实例列表。
在实例列表页面,单击目标企业版实例。
在概览页面,记录实例ID,并打开组件设置板块下的P2P加速开关,然后在弹出的对话框中单击确定。
警告关闭P2P加速组件前需停止使用P2P功能,并从所有安装P2P组件的集群中卸载P2P组件。重新开启该功能需要重新安装P2P组件。
开启P2P加速后,在左侧导航栏选择访问控制,在专有网络列表中获取P2P访问IP。
说明请确保已在ACR企业版实例中配置ACK集群对应的专有网络,确保获取的是ACK集群所在VPC的P2P访问IP。
步骤二:在ACK节点池安装 ack-p2pagent 组件
登录容器服务管理控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择集群列表。
在集群列表页面,单击目标集群名称。
在左侧导航栏,选择,单击目标节点池名称。
建议先在新建节点池中完成验证后,再将 ack-p2pagent 组件安装到存量节点池。
选择节点组件,点击安装节点组件 ,选择ack-p2pagent,在p2pRoot输入框中填入步骤一获取的P2P访问IP。以下是有关ack-p2pagent组件的部分参数说明。
如需接入P2P Agent监控大盘,还需要同时勾选
是否启用 Prometheus 监控指标,然后按照提示流程完成安装。filecache相关
默认值(disk模式)
默认值(memory模式)
参数说明
blocksize
256
256
单次向数据源OSS请求的分片大小。
capacity
4294967296
0
磁盘缓存大小。
optionBlockSize
67108864
8589934592
内存缓存大小:
disk模式下,该参数定义了P2P两级缓存(memory + disk)中内存缓冲区的大小。
memory模式下,该数值为内存缓冲区大小。
memoryCacheCapacityGB
1
8
disk模式下忽略此值,保留默认值。
memory模式,该值为
optionBlockSize对应的GB大小。
aio
0
0
是否启用libaio,该值仅在disk模式下生效,在memory模式下无效。
在使用 ESSD AutoPL 云盘或 ESSD PL3 云盘时,可开启该值提高性能。
在使用 ESSD PL0 云盘或 ESSD PL1 云盘时,aio的落盘时间过长会导致整个P2P网络大量超时异常。
(可选)步骤三:接入P2P Agent 监控大盘
费用说明
将集群的监控数据接入阿里云Prometheus监控功能后,相关组件会自动将监控指标发送至阿里云Prometheus服务,这些指标将被视为自定义指标。使用自定义指标会产生额外费用。
为避免产生额外的费用,建议在启用此功能前,仔细阅读阿里云Prometheus的计费概述,了解自定义指标的收费策略。费用将根据您的集群规模和应用数量等因素产生变动。您可以通过资源消耗统计功能,监控和管理您的资源使用情况。
接入步骤
登录容器服务管理控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择集群列表。
在集群列表页面,单击目标集群名称。
在左侧导航栏,点击,等待页面自动初始化。
点击页面右上角采集配置,进入接入管理页面,单击接入中心。
在接入中心搜索框中搜索P2P Agent监控,单击搜索结果中的P2P Agent监控卡片。
在弹出的P2P Agent监控页面中,下拉选择待接入的集群作为观测对象,单击确定开启P2P Agent监控。
回到页面,单击其他页签,找到 P2P-Legacy Dashboard 和 P2P-NG Dashboard 页签,即可查看 P2P Agent 监控大盘。