You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
P2P 镜像加速
配置 P2P 镜像加速
复制全文
下载 pdf
配置 P2P 镜像加速
本文主要介绍容器服务结合火山引擎镜像仓库提供 P2P 加速能力,利用节点的内网带宽资源,实现在节点之间分发镜像的方案。​
使用建议​
P2P 镜像加速应用于大规模集群快速拉取 GB 级容器镜像,支持数百至上千节点的并发拉取。使用建议如下:​
  • 选择 P2P 缓存盘类型时,建议优先选用本地盘。如果当前地域或 ECS 实例类型不支持本地盘,则优先选用极速型 SSD 云盘。不同类型存储的性能参考,请参见 P2P 加速效果参考。​
  • 建议创建 P2P 专用缓存节点池,将调度和种子缓存能力与业务工作负载隔离。避免加速组件与业务抢占节点、网络等资源,影响业务的正常。详情参见 P2P 镜像加速概述。​
说明​
为了获得更好的镜像加速效果,建议您使用镜像预热功能,将镜像提前预热到 Seed Peer 节点,使 P2P 节点提前缓存镜像数据,再逐渐扩大镜像拉取的规模。​
使用限制​
使用云盘存储作为 P2P 镜像缓存盘时,需要关注如下几个因素:​
  • 云盘集群总吞吐量:确认目标地域和可用区的云盘集群总吞吐量能够满足预计的并发镜像拉取需求。​
  • 集群内业务负载本身对磁盘的压力:避免因镜像拉取时云盘读写负载过高,造成集群内现网业务中断现象,甚至影响该地域内其他用户的正常使用。如果 P2P 给磁盘造成过大压力,建议联系您的容器服务业务对接人员,配置合适的限速,然后重启 p2p-accelerator 组件。​
前提条件​
说明​
目前仅镜像仓库 标准版 支持 P2P 加速功能。​
操作步骤​
步骤一:为存量节点池添加缓存盘​
注意​
缓存盘设置仅对节点池内后续新增的节点生效,存量节点不会自动挂载缓存盘。如需对存量节点生效,可选择以下方式:​
  • 轮转存量节点:将存量节点逐步替换为新建节点,新建节点将自动挂载缓存盘。​
  1. 在左侧导航栏中,选择 集群,单击目标集群名称,进入集群管理页面。​
  1. 在左侧导航栏中,选择 镜像加速,进入镜像加速配置引导页。​
  1. 在镜像加速配置引导页中,选择目标节点池,单击 操作 列中的 配置缓存盘。​
  • ​​​
  1. 在弹出的配置页面中,为节点添加新的 P2P 缓存盘。​
  • ​​​
  1. 单击 确定,完成配置。​
  1. 配置完成后,查看对应节点池的配置,可以看到新增的 P2P 缓存盘,挂载的目录为/mnt/p2pcache。​
  • ​​​
步骤二:(可选)创建专用缓存节点池​
  1. 在镜像加速配置引导页中,单击 创建专用缓存节点池,跳转至托管节点池配置页面。​
  • ​​​
  1. 系统会自动帮您配置 P2P 缓存专用节点池的部分参数,如下表所示。其他参数的配置方式和说明,请参见 创建托管节点池。​
  • ​
    配置项​
    说明​
    节点池配置​
    ​
    名称​
    默认为 p2p-cachepool。节点池名称在集群内唯一,可根据需求修改,修改后不影响 P2P 缓存功能。​
    计费方式​
    默认为 按量计费。​
    开启托管​
    默认开启托管模式。托管节点池由系统负责节点的生命周期管理,包括节点初始化、健康检查和故障替换,无需手动运维。建议保持默认,关闭托管后节点异常时需手动处理,可能影响 P2P 缓存服务的可用性。​
    计算规格​
    系统默认筛选 本地 SSD 型 规格,并展示 8 vCPU、16 GiB 及以上的 ECS 实例规格。本地 SSD 磁盘 I/O 性能更高,适合缓存高频读写场景,建议优先选择。请根据集群规模和预期缓存数据量选择合适的规格。​
    说明​
    • 若当前地域无本地 SSD 型可用规格,系统将展示全部机型,请手动筛选符合要求的规格。​
    • 所选规格的实例配置须为 8 vCPU、16 GiB 及以上,低于此规格可能导致缓存服务性能不足。​
    节点数量​
    默认为 3,即创建 3 个 P2P 缓存专用节点。节点数量决定了集群内可用的缓存副本数,建议保持默认,以保证缓存服务的高可用性。​
    系统配置​
    ​
    存储​
    系统已自动为节点创建 P2P 缓存盘,并挂载至/mnt/p2pcache目录,用于持久化存储 P2P 镜像缓存数据。若单块数据盘的容量不足以满足缓存需求,可单击 添加数据盘,为节点挂载更多缓存盘以扩充存储容量。​
    高级配置​
    ​
    节点标签 (Labels)​
    默认为节点池添加标签vke.volcengine.com/p2p-cache-enabled=true,用于标识该节点池为 P2P 缓存专用节点池。P2P 组件(Seed Peer 和 Scheduler)会根据此标签将缓存数据调度到对应节点,集群内其他节点可通过 P2P 协议从这些缓存节点获取镜像数据,避免重复回源拉取。​
    节点污点 (Taints)​
    默认为节点池添加污点vke.volcengine.com/p2p-cache-enabled=true:NoSchedule,用于隔离 P2P 缓存专用节点,防止业务 Pod 被调度到缓存节点上,避免与缓存服务争用节点资源。P2P 组件(Seed Peer 和 Scheduler)已配置对应的容忍规则,可正常调度到该节点池。​
    ​
  1. 配置其他的必要参数(例如:可用区、子网、登录密码等)和可选参数后,单击 确定,完成配置。​
步骤三:配置 Kubelet/Containerd 参数​
  1. 在镜像加速配置引导页中,选择目标节点池,单击 操作 列中的 设置 Kubelet/Containerd 参数。​
  • ​​​
  1. 在弹出的页面中,配置节点池的 kubelet/containerd 参数。​
  • ​​​
  • ​
    配置项​
    说明​
    存量节点同步数据​
    是否同步自定义 Kubelet/Containerd 参数到存量节点。​
    • 开启:(默认)同步自定义的 Kubelet/Containerd 参数到存量节点,自定义参数会对节点池中的所有节点生效。​
    • 关闭:不同步自定义的 Kubelet/Containerd 参数到存量节点,自定义参数仅对新增节点生效,不对存量节点生效。​
    Kubelet 参数​
    配置 P2P 镜像加速相关的 Kubelet 参数,包括 image-gc-high-threshold-percent、image-gc-low-threshold-percent、image-maximum-gc-age、image-minimum-gc-age、registry-qps、registry-burst 等。​
    说明​
    • 控制台中展示的参数默认值可能与社区不同,且控制台中的预填值不代表该值已生效。​
    • 请确认各项参数的预填值符合您的实际环境。如有需求,可以根据实际情况进行修改。详细的参数说明,请参见 配置节点池 Kubelet 参数。​
    Containerd 参数​
    配置 P2P 镜像加速相关的 Containerd 参数。包括 max_concurrent_downloads、max_concurrent_unpacks、concurrent_layer_fetch_buffer、use_local_image_pull等。​
    说明​
    • 不同 Containerd 版本时,支持配置的 Containerd 参数不同。​
    • 控制台中展示的参数默认值可能与社区不同,且控制台中的预填值不代表该值已生效。​
    • 请确认各项参数的预填值符合您的实际环境。如有需求,可以根据实际情况进行修改。详细的参数说明,请参见 配置节点池 Containerd 参数。​
    ​
  1. 单击 确定,完成配置。​
步骤四:安装 P2P 加速组件​
说明​
如果您的集群中已经安装 p2p-accelerator 组件,请将其升级至 v2.0.0 及以上版本。​
  1. 在镜像加速配置引导页中的组件安装提示中,单击 安装。​
  • ​​​
  1. 在弹出的页面中,配置并安装 p2p-accelerator 组件。参数详细说明,请参见 p2p-accelerator。​
结果验证​
配置确认​
  1. 配置完成后,您可以在镜像加速配置引导页中,确认集群中的节点已配置缓存盘、专用 P2P 节点池已创建以及 p2p-accelerator 组件已成功安装且状态正常。​
  • ​​​
  1. 查看集群中的节点详情,在 标签 页签中,确认 P2P 镜像加速相关的标签已生效。​
  • 对于 P2P 专用节点池的节点,应存在vke.volcengine.com/p2p-cache-enabled=true标签。​
  • ​​​
  • 对于存量节点池的新增节点,应存在vke.volcengine.com/p2p-cache-disk=true标签。​
  • ​​​
功能验证​
配置完成后,您可以在集群中创建工作负载拉取镜像,并通过云原生观测中的镜像加速看板,确认功能正常。​
  1. 开启镜像加速观测功能。详情请参见 镜像加速观测。​
  1. 创建工作负载,触发镜像拉取。以创建无状态负载为例,详情请参见 创建无状态负载。​
  1. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板。​
  1. 在左侧看板列表中选择 镜像加速服务监控 > 镜像加速监控,即可查看 P2P 镜像加速监控看板。详细的看板介绍,请参见 镜像加速观测。​
  • ​​​
其他配置​
为存量节点挂载缓存盘​
为存量节点池添加缓存盘时,仅针对新扩容节点生效。如果您需要配置存量节点,则需要手动处理。操作步骤如下:​
说明​
建议先选一台节点验证,再批量操作。​
  1. 在左侧导航栏中,选择 存储 > 云盘,单击 创建云盘,创建一块数据盘。​
  • ​​​
  1. 在目标云盘的 操作 列中选择... > 挂载,将该数据盘挂载到对应的 VKE 节点。详情请参见 挂载云盘。​
  1. 挂载完成后,登录 VKE 节点,执行如下命令,确认节点中的存储设备名称。​
  • ​
    lsblk -f​
    ​
说明​
本文以新挂载的数据盘名称/dev/vdc为例,实际操作时,请注意实际的设备名称。​
  • 预期结果如下:​
  • ​
    NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT​
    vda ​
    ├─vda1 vfat 8038-E872 184.1M 2% /boot/efi​
    └─vda2 ext4 9fe1e649-af91-4241-ac59-a6f*** 34.1G 9% /​
    vdb ext4 60396815-6cbd-42d7-9877-f97*** 87.8G 5% /mnt/vdb​
    vdc ​
    ​
  1. 执行以下命令,格式化系统。​
  • ​
    sudo mkfs.xfs /dev/vdc​
    ​
  • 预期结果如下,系统显示格式化成功。​
  • ​
    meta-data=/dev/vdc isize=512 agcount=4, agsize=655360 blks​
    = sectsz=512 attr=2, projid32bit=1​
    = crc=1 finobt=1, sparse=1, rmapbt=0​
    = reflink=0​
    data = bsize=4096 blocks=2621440, imaxpct=25​
    = sunit=0 swidth=0 blks​
    naming =version 2 bsize=4096 ascii-ci=0, ftype=1​
    log =internal log bsize=4096 blocks=2560, version=2​
    = sectsz=512 sunit=0 blks, lazy-count=1​
    realtime =none extsz=4096 blocks=0, rtextents=0​
    ​
  1. 执行以下命令,创建缓存目录并将数据盘挂载到该目录。​
  • ​
    sudo mkdir -p /mnt/p2pcache​
    sudo mount /dev/vdc /mnt/p2pcache​
    df -hT /mnt/p2pcache​
    ​
  • 挂载完成后,检查挂载是否正确。​
  • ​
    findmnt /mnt/p2pcache​
    ​
  • 预期结果如下,数据盘正确挂载到指定目录中。​
  • ​
    TARGET SOURCE FSTYPE OPTIONS​
    /mnt/p2pcache /dev/vdc xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota​
    ​
  1. 配置数据盘开机自动挂载。​
  1. 执行以下命令,获取数据盘的文件系统 UUID。​
  • ​
    sudo blkid /dev/vdc​
    ​
  1. 执行以下命令,在/etc/fstab中增加配置,注意需要把<UUID>替换成实际值。​
  • ​
    sudo echo "UUID=<UUID> /mnt/p2pcache xfs defaults,nofail 0 2" >> /etc/fstab​
    ​
  • 配置完成后,检查挂载是否正确。​
  • ​
    findmnt /mnt/p2pcache​
    ​
  • 预期结果如下,数据盘正确挂载到指定目录中。​
  • ​
    TARGET SOURCE FSTYPE OPTIONS​
    /mnt/p2pcache /dev/vdc xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota​
    ​
  1. 执行以下命令,配置节点 Label。其中<node_name>为节点名称,例如192.168.1.10。​
  • ​
    kubectl label node <node_name> vke.volcengine.com/p2p-cache-disk=true --overwrite​
    ​
  • 配置完成后,确认 Label 已经正确配置并生效。其中<node_name>为节点名称,例如192.168.1.10。​
  • ​
    kubectl get node <node_name> -L vke.volcengine.com/p2p-cache-disk​
    ​
  • 预期结果如下:​
  • ​
    NAME STATUS ROLES AGE VERSION P2P-CACHE-DISK​
    192.168.1.10 Ready,SchedulingDisabled <none> 22h v1.34.6-vke.12 true​
    ​
  1. 执行以下命令,检查挂载点是否正常。其中<node_name>为节点名称,例如192.168.1.10。​
  • ​
    kubectl debug node/<node_name> -it --image=doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0 -- chroot /host df -h /mnt/p2pcache​
    ​
  • 预期结果如下,表示节点中的挂载点正常。​
  • ​
    Creating debugging pod node-debugger-192.168.1.10-kfz8z with container debugger on node 192.168.1.10.​
    Warning: metadata.name: this is used in the Pod's hostname, which can result in surprising behavior; a DNS label is recommended: [must not contain dots]​
    Filesystem Size Used Avail Use% Mounted on​
    /dev/vdc 10G 43M 10G 1% /mnt/p2pcache​
    ​
​
​
最近更新时间:2026.10.10 10:18:12
这个页面对您有帮助吗?
有用
有用
无用
无用