全部產品
Search
文件中心

Container Registry:在ACK叢集中安裝P2P加速套件

更新時間:Dec 23, 2025

您可以在ACK叢集中使用P2P加速功能提升鏡像拉取速度,減少應用部署時間。本文介紹如何在ACK叢集中安裝P2P加速套件。

前提條件

鏡像使用限制

如果您的業務容器鏡像是大模型等超大鏡像,需確保節點池的節點資料盤為AutoPL類型,或確保節點有8GB以上的空閑記憶體用於P2P資料緩衝,以提高P2P拉取的效率。

步驟一:擷取Container RegistryACR企業版執行個體ID並開啟P2P模組

  1. 登入Container Registry控制台

  2. 在頂部功能表列,選擇所需地區。

  3. 在左側導覽列,選擇執行個體列表

  4. 執行個體列表頁面單擊目標企業版執行個體。

  5. 概覽頁面,記錄執行個體ID並開啟組件設定板塊下的P2P加速按鈕,然後在彈出的對話方塊中單擊確定

    警告

    關閉P2P加速組件前需要停止使用P2P功能,並從所有安裝使用P2P組件的叢集中卸載P2P組件,重新開啟該功能需要重新安裝P2P組件。

    image

步驟二:安裝P2P組件(包含授予P2P組件相應的許可權)

您可以通過以下三種方式授予P2P組件對Container RegistryACR企業版執行個體的存取權限。

  • 使用Worker RAM角色進行授權並安裝。

    使用限制:Container RegistryACR企業版執行個體與ACK叢集屬於同一個阿里雲帳號。

  • 使用RAM使用者的AK及SK進行授權並安裝。

  • 使用RRSA進行授權並安裝。

    使用限制:僅支援在1.22及以上版本的ACK託管叢集

使用Worker RAM角色進行授權並安裝

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊

  3. 叢集資訊頁面,選擇基本資料頁簽,在叢集資源地區,複製Worker RAM角色右側的名稱,並單擊連結進入RAM存取控制控制台為該Worker RAM角色授權。

    1. 建立如下自訂權限原則。請參見建立自訂權限原則

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:GetInstanceVpcEndpoint",
                      "cr:ListInstanceEndpoint"
                  ],
                  "Resource": "*"
              }
          ]
      }
    2. 角色頁面,搜尋定位該Worker RAM角色,為其授予以上建立的自訂權限原則。具體操作,請參見管理RAM角色的許可權

  4. 登入Container Service管理主控台,在左側導覽列選擇市場 > 應用市場

  5. 應用目錄頁面下方搜尋方塊內輸入ack-acr-acceleration-p2p,找到該組件,單擊該組件卡片。

  6. 在組件詳情頁面,單擊右上方的一鍵部署

  7. 建立面板中,選擇叢集命名空間,設定發布名稱,單擊下一步

  8. 參數配置面板,選擇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使用者添加如下許可權,然後建立AccessKey並記錄AccessKey IDAccessKey Secret

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetInstanceVpcEndpoint",
                    "cr:ListInstanceEndpoint"
                ],
                "Resource": "*"
            }
        ]
    }
  3. 登入Container Service管理主控台,在左側導覽列選擇市場 > 應用市場

  4. 應用目錄頁面下方搜尋方塊內輸入ack-acr-acceleration-p2p,找到該組件,單擊該組件卡片。

  5. 在組件詳情頁面,單擊右上方的一鍵部署

  6. 建立面板中,選擇叢集命名空間,設定發布名稱,單擊下一步

  7. 參數配置面板,選擇Chart版本為最新版本,設定acrInstances參數為上文擷取的容器鏡像執行個體ID。如果有多個容器鏡像執行個體,在設定acrInstances參數時,執行個體之間使用英文半形逗號(,)隔開,填入上文中查到的AccessKey IDAccessKey Secret

    # 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角色的Container RegistryACR的資源存取權限。

    • 若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可以在Container Service管理主控台叢集資訊頁面的基本資料頁簽中擷取。

      • 將樣本中的<oidc_provider_arn>替換為當前叢集OIDC供應商的ARN。該ARN可以在Container Service管理主控台叢集資訊頁面的基本資料頁簽中擷取。

      {
        "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使用者的Container RegistryACR資源的許可權。

      在A使用者中建立RAM角色。具體操作,請參見建立可信實體為阿里雲帳號的RAM角色。添加AliyunSTSAssumeRoleAccess權限原則,授予這個角色具有角色扮演的許可權。並修改其信任策略。

      說明
      • 將樣本<oidc_issuer_url>替換為當前叢集中OIDC供應商的URL。該URL可以在Container Service管理主控台叢集資訊頁面的基本資料頁簽中擷取。

      • 將樣本中的<oidc_provider_arn>替換為當前叢集OIDC供應商的ARN。該ARN可以在Container Service管理主控台叢集資訊頁面的基本資料頁簽中擷取。

      {
        "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. 登入Container Service管理主控台,在左側導覽列選擇市場 > 應用市場

  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秒內如果接收不到任何資料則判定逾時。