赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 容器镜像服务
  4. 操作指南
  5. 镜像分发
  6. P2P镜像加速
  7. 在ACK集群中安装P2P加速套件

在ACK集群中安装P2P加速套件

  • P2P镜像加速
  • 发布于 2025-04-18
  • 0 次阅读
文档编辑
文档编辑

您可以在ACK集群中使用P2P加速功能提升镜像拉取速度,减少应用部署时间。本文介绍如何在ACK集群中安装P2P加速套件。

前提条件

  • 已创建标准版或高级版ACR企业版实例。

  • 已创建ACK托管与专有版或ACK Serverless集群Pro版。

  • 确认在容器镜像服务企业版实例中配置ACK集群对应的专有网络。具体操作,请参见配置专有网络的访问控制。

镜像使用限制

如果您的业务容器镜像是大模型等超大镜像,需确保节点池的节点数据盘为AutoPL类型,或确保节点有8GB以上的空闲内存用于P2P数据缓存,以提高P2P拉取的效率。

步骤一:获取容器镜像服务ACR企业版实例ID并开启P2P模块

  1. 登录容器镜像服务控制台。

  2. 在顶部菜单栏,选择所需地域。

  3. 在左侧导航栏,选择实例列表。

  4. 在实例列表页面单击目标企业版实例。

  5. 在概览页面,记录实例ID并打开组件设置板块下的P2P加速按钮,然后在弹出的对话框中单击确定。

    警告

    关闭P2P加速组件前需要停止使用P2P功能,并从所有安装使用P2P组件的集群中卸载P2P组件,重新开启该功能需要重新安装P2P组件。

    image

步骤二:安装P2P组件(包含授予P2P组件相应的权限)

您可以通过以下三种方式授予P2P组件对容器镜像服务ACR企业版实例的访问权限。

  • 使用Worker RAM角色进行授权并安装。

    使用限制:容器镜像服务ACR企业版实例与ACK集群属于同一个阿里云账号。

  • 使用RAM用户的AK及SK进行授权并安装。

  • 使用RRSA进行授权并安装。

    使用限制:仅支持在1.22及以上版本的ACK托管集群。

使用Worker RAM角色进行授权并安装

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择集群信息。

  3. 在集群信息页面,选择基本信息页签,在集群资源栏中,单击Worker RAM角色右侧链接。

  4. 在RAM角色基本信息的权限管理页面,单击目标权限策略名称。确认该权限策略是否存在如下内容,若不存在,单击修改策略内容,在策略内容区域,增加如下字段,单击确定。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetInstanceVpcEndpoint",
                    "cr:ListInstanceEndpoint"
                ],
                "Resource": "*"
            }
        ]
    }
  5. 登录容器服务管理控制台,在左侧导航栏选择市场 > 应用市场。

  6. 在应用目录页面下方搜索框内输入ack-acr-acceleration-p2p,找到该组件,单击该组件卡片。

  7. 在组件详情页面,单击右上角的一键部署。

  8. 在创建面板中,选择集群和命名空间,设置发布名称,单击下一步。

  9. 在参数配置面板,选择Chart版本为最新版本,设置acrInstances参数为上文获取的容器镜像实例ID。如果有多个容器镜像实例,在设置acrInstances参数时,实例之间使用英文半角逗号(,)隔开。

    # ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy"
    acrInstances: ""
    
    
    # Region of ACR EE instance, default is the region of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster.
    region: ""
    
    # VPC which is connected to the VPC network of the ACR EE instance, default is the VPC of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster through VPC network.
    vpcId: ""
    
    
    p2p:
      # Port of P2P Agent in host network
      port: 65001
    说明
    • 默认占用节点上的65001端口,如果有冲突,请根据实际情况修改。

    • 当ACK集群与ACR企业版实例处于同一地域时,参数Region和VPC ID可以留空;若ACK集群与ACR企业版实例处于不同地域时,Region需要设置为ACR企业版实例所在的地域,VPC ID需要设置为ACR企业版实例所绑定的VPC ID。

    • 如果您的业务容器镜像是大模型等超大镜像,您需要结合节点情况调整P2P数据缓存模式:

      • 数据盘缓存模式(默认):确保节点上的数据盘类型为AutoPL类型。将p2p.v2.cache.mode的值设置为disk。

      • 内存缓存模式:确保节点上有至少8GB的空闲内存,然后将p2p.v2.cache.mode的值设置为memory。

使用RAM用户的AK及SK进行授权并安装

  1. 创建RAM用户。具体操作,请参见创建RAM用户。

  2. 为RAM用户添加如下权限,并查看访问密钥。具体操作,请参见查看RAM用户的AccessKey信息。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetInstanceVpcEndpoint",
                    "cr:ListInstanceEndpoint"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 登录容器服务管理控制台,在左侧导航栏选择市场 > 应用市场。

  4. 在应用目录页面下方搜索框内输入ack-acr-acceleration-p2p,找到该组件,单击该组件卡片。

  5. 在组件详情页面,单击右上角的一键部署。

  6. 在创建面板中,选择集群和命名空间,设置发布名称,单击下一步。

  7. 在参数配置面板,选择Chart版本为最新版本,设置acrInstances参数为上文获取的容器镜像实例ID。如果有多个容器镜像实例,在设置acrInstances参数时,实例之间使用英文半角逗号(,)隔开,填入上文中查到的AccessKey和AccessSecret。

    # ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy"
    acrInstances: ""
    
    
    # Please fill in the following parameters if the K8s cluster is built in your own IDC
    accessKey: ""
    accessKeySecret: ""
    
    # Region of ACR EE instance, default is the region of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster.
    region: ""
    
    # VPC which is connected to the VPC network of the ACR EE instance, default is the VPC of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster through VPC network.
    vpcId: ""
    
    
    p2p:
      # Port of P2P Agent in host network
      port: 65001
    说明
    • 默认占用节点上的65001端口,如果有冲突,请根据实际情况修改。

    • 当ACK集群与ACR企业版实例处于同一地域时,参数Region和VPC ID可以留空;若ACK集群与ACR企业版实例处于不同地域时,Region需要设置为ACR企业版实例所在的地域,VPC ID需要设置为ACR企业版实例所绑定的VPC ID。

    • 如果您的业务容器镜像是大模型等超大镜像,您需要结合节点情况调整P2P数据缓存模式:

      • 数据盘缓存模式(默认):确保节点上的数据盘类型为AutoPL类型。将p2p.v2.cache.mode的值设置为disk。

      • 内存缓存模式:确保节点上有至少8GB的空闲内存,然后将p2p.v2.cache.mode的值设置为memory。

使用RRSA进行授权并安装

基于适用于服务账户的RAM角色(RAM Roles for Service Accounts,简称RRSA)功能,可以在集群内为组件实现Pod维度的权限隔离。

RRSA功能目前仅支持在1.22及以上版本的集群中使用。

重要
  • 开启RRSA功能需要将组件升级到v0.3.6或以上版本。

  • 启用P2P组件的RRSA功能首先需要在集群基本信息中启用RRSA,再进行P2P组件的RRSA的相关配置。若操作顺序不对,在配置完成后,需要卸载P2P组件并重新安装,RRSA功能才会生效。

  1. 启用集群的RRSA功能。具体操作,请参见通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离。

  2. 配置RAM角色的容器镜像服务ACR的资源访问权限。

    • 若ACR企业版实例与ACK集群属于同一阿里云账号。

      例如A用户为ACK集群和ACR企业版实例的所有者,在A用户中创建RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色。并添加如下权限策略。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:GetInstanceVpcEndpoint",
                      "cr:ListInstanceEndpoint"
                  ],
                  "Resource": "*"
              }
          ]
      }
      说明
      • 将示例<oidc_issuer_url>替换为当前集群中OIDC提供商的URL。该URL可以在容器服务管理控制台集群信息页面的基本信息页签中获取。

      • 将示例中的<oidc_provider_arn>替换为当前集群OIDC提供商的ARN。该ARN可以在容器服务管理控制台集群信息页面的基本信息页签中获取。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Condition": {
              "StringEquals": {
                "oidc:aud": [
                  "sts.aliyuncs.com"
                ],
                "oidc:iss": "<oidc_issuer_url>",
                "oidc:sub": [
                  "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-job-sa",
                  "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-sa"
                ]
              }
            },
            "Effect": "Allow",
            "Principal": {
              "Federated": [
                "<oidc_provider_arn>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    • 若ACR企业版实例与ACK集群属于不同的阿里云账号。

      例如A用户为ACK集群所有者,B用户为ACR企业版实例所有者,现在需要授权A用户的ACK集群具备访问B用户的容器镜像服务ACR资源的权限。

      在A用户中创建RAM角色。具体操作,请参见创建可信实体为阿里云账号的RAM角色。添加AliyunSTSAssumeRoleAccess权限策略,授予这个角色具有角色扮演的权限。并修改其信任策略。

      说明
      • 将示例<oidc_issuer_url>替换为当前集群中OIDC提供商的URL。该URL可以在容器服务管理控制台集群信息页面的基本信息页签中获取。

      • 将示例中的<oidc_provider_arn>替换为当前集群OIDC提供商的ARN。该ARN可以在容器服务管理控制台集群信息页面的基本信息页签中获取。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Condition": {
              "StringEquals": {
                "oidc:aud": [
                  "sts.aliyuncs.com"
                ],
                "oidc:iss": "<oidc_issuer_url>",
                "oidc:sub": [
                  "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-job-sa",
                  "system:serviceaccount:aliyun-acr-acceleration:ack-acr-acceleration-p2p-sa"
                ]
              }
            },
            "Effect": "Allow",
            "Principal": {
              "Federated": [
                "<oidc_provider_arn>"
              ]
            }
          }
        ],
        "Version": "1"
      }

      在B用户中创建一个用户ACR相关权限的角色,选择信任策略管理,添加A用户角色ARN。对B用户的角色添加如下权限策略,授予这个角色如下权限。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:GetInstanceVpcEndpoint",
                      "cr:ListInstanceEndpoint"
                  ],
                  "Resource": "*"
              }
          ]
      }
      说明

      该RAM角色可以设置角色最大会话时间,可设置时间范围为3600秒到43200秒,而角色会话时间在下文的配置项中的expireDuration也需要设置。推荐此处取值的设置和配置项的expireDuration的值一致。允许expireDuration小于等于角色最大会话时间。

  3. 登录容器服务管理控制台,在左侧导航栏选择市场 > 应用市场。

  4. 在应用目录页面下方搜索框内输入ack-acr-acceleration-p2p,找到该组件,单击该组件卡片。

  5. 在组件详情页面,单击右上角的一键部署。

  6. 在创建面板中,选择集群和命名空间,设置发布名称,单击下一步。

  7. 在参数配置面板,选择Chart版本为最新版本,设置registryInstances参数为上文获取的容器镜像实例ID。如果有多个容器镜像实例,在设置registryInstances参数时,实例之间使用英文半角逗号(,)隔开。按照如下表格填入RRSA相关配置项。

    参数

    说明

    值

    rrsa.enable

    是否开启RRSA。

    true

    rrsa.rrsaRoleARN

    上文中A用户创建的角色的ARN。

    acs:ram::aaa

    rrsa.rrsaOIDCProviderRoleARN

    上文中A用户ACK控制台集群基本信息中的提供商ARN。

    acs:ram::bbb

    rrsa.assumeRoleARN

    上文中B用户创建的角色的ARN。同账号场景不需要填写

    acs:ram::ccc

    rrsa.expireDuration

    上文中B用户创建的角色的会话时间,等同于免密组件生成的临时凭证的有效期。同账号场景不填。

    重要

    expireDuration的值不应大于B用户创建角色的最大会话时间。

    默认为3600。取值区间为3600~43200,单位为秒。

    同时需要将B用户创建角色的最大会话时间调整为43200。

    其他部分参数说明请参见附录。

    说明
    • 默认占用节点上的65001端口,如果有冲突,请根据实际情况修改。

    • 当ACK集群与ACR企业版实例处于同一地域时,参数Region和VPC ID可以留空;若ACK集群与ACR企业版实例处于不同地域时,Region需要设置为ACR企业版实例所在的地域,VPC ID需要设置为ACR企业版实例所绑定的VPC ID。

    • 如果您的业务容器镜像是大模型等超大镜像,您需要结合节点情况调整P2P数据缓存模式:

      • 数据盘缓存模式(默认):确保节点上的数据盘类型为AutoPL类型。将p2p.v2.cache.mode的值设置为disk。

      • 内存缓存模式:确保节点上有至少8GB的空闲内存,然后将p2p.v2.cache.mode的值设置为memory。

    # ID of ACR EE instances, support multi, e.g. "cri-xxx,cri-yyy"
    acrInstances: ""
    
    rrsa:
      enable: true
      rrsaRoleARN: ""
      rrsaOIDCProviderRoleARN: ""
      assumeRoleARN: ""
      expireDuration: 3600
    
    # Region of ACR EE instance, default is the region of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster.
    region: ""
    
    # VPC which is connected to the VPC network of the ACR EE instance, default is the VPC of the cluster on the cloud.
    # Need to be set if cross-regional access on the cloud cluster, or access on your IDC cluster through VPC network.
    vpcId: ""
    
    
    p2p:
      # Port of P2P Agent in host network
      port: 65001

附录

以下是有关ack-acr-acceleration-p2p组件的部分参数说明。

filecache相关

默认值(disk模式)

默认值(memory模式)

参数说明

blocksize

256

256

单次向数据源OSS请求的分片大小。

capacity

4294967296

0

磁盘缓存大小。

optionBlockSize

67108864

8589934592

内存缓存大小:

  • disk模式下,p2p有mem+disk两级缓存,mem buffer大小为optionBlockSize。

  • memory模式,该数值为内存缓存大小。

memoryCacheCapacityGB

1

8

  • disk模式下忽略此值,保留默认值。

  • memory模式,该值为optionBlockSize对应的GB大小。

aio

0

0

是否启用libaio,该值在memory模式下无效。

  • disk模式下,autoPL/pl3可开启该值提高性能。

  • pl0/1磁盘下,aio的落盘时间过长会导致整个p2p网络大量超时异常。

DeployConfig

proxyFsParallels

128

p2pagent能同时处理的请求数。

AgentConfig

connectTimeout (s)

5

p2pagent向上游建立连接的超时时间。

transferTimeout (s)

15

数据传输的超时时间:15秒内如果接收不到任何数据则判定超时。

相关文章

使用P2P加速 2025-04-18 15:16

P2P加速功能可以提升镜像拉取速度,减少应用部署时间。当大规模容器集群批量下载镜像时,您可以使用P2P加速功能提升镜像拉取速度。本文介绍如何使用P2P加速功能提升镜像拉取速度。 背景信息 当大规模容器集群批量下载镜像时,容器镜像存储的网络带宽会成为性能瓶颈,导致镜像拉取缓慢。P2P加速功能可以利用您

在ACK集群中安装P2P加速套件 2025-04-18 15:16

您可以在ACK集群中使用P2P加速功能提升镜像拉取速度,减少应用部署时间。本文介绍如何在ACK集群中安装P2P加速套件。 前提条件 已创建标准版或高级版ACR企业版实例。

在ACK Edge集群中安装P2P加速套件 2025-04-18 15:16

您可以在ACK Edge集群中使用P2P加速功能提升镜像拉取速度,减少应用部署时间。本文介绍如何在集群中安装P2P加速套件。 前提条件

在IDC或其他云厂商集群中安装P2P加速套件 2025-04-18 15:16

您可以在IDC或其他云厂商集群中使用P2P加速功能提升镜像拉取速度,减少应用部署时间。本文介绍如何在IDC或其他云厂商集群中安装P2P加速套件。 前提条件 创建容器镜像服务ACR企业版实例,且创建的企业版实例需为

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号