すべてのプロダクト
Search
ドキュメントセンター

Container Registry:ACKクラスターにP2Pアクセラレーションエージェントをインストールする

最終更新日:Jan 27, 2025

Container Service for Kubernetes (ACK) クラスターのP2Pアクセラレーション機能を使用して、イメージプルを高速化し、アプリケーションのデプロイに必要な時間を短縮できます。 このトピックでは、ACKクラスターにP2Pアクセラレーションエージェントをインストールする方法について説明します。

前提条件

画像使用の制限

ビジネスコンテナイメージがラージモデルなどの超ラージイメージの場合は、ノードのデータディスクがAutoPLタイプであるか、ノードにP2Pデータキャッシング用の空きメモリが8 GB以上あることを確認して、P2Pデータプルの効率を向上させます。

手順1: Container Registry Enterprise EditionインスタンスのIDを取得し、P2Pアクセラレーション機能を有効にする

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  4. [インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。

  5. [概要] ページで、Container Registry Enterprise EditionインスタンスのIDを記録し、[コンポーネント設定] セクションの [P2Pアクセラレーション] をオンにします。 表示されたメッセージボックスで [OK] をクリックします。

    警告

    P2Pアクセラレーションエージェントを無効にする前に、P2P機能の使用を停止し、P2PエージェントがインストールされているすべてのクラスターからP2Pエージェントをアンインストールする必要があります。 この機能を再度有効にする場合は、P2Pエージェントを再インストールする必要があります。

    image

ステップ2: P2Pエージェントをインストールし、P2Pエージェントに対応する権限を付与

次のいずれかの方法を使用して、P2PエージェントにContainer Registry Enterprise Editionインスタンスへのアクセスを許可できます。

  • ワーカーRAMロールを使用します。

    制限: Container Registry Enterprise EditionインスタンスとACKクラスターは、同じAlibaba Cloudアカウントに属している必要があります。

  • RAMユーザーのAccessKeyペアを使用します。

  • サービスアカウントのRAMロール (RRSA) 機能を使用します。

    制限: クラスターは、Kubernetes 1.22以降を実行するACKマネージドクラスターである必要があります。

ワーカーRAMロールを使用して、P2PエージェントにContainer Registry Enterprise Editionインスタンスへのアクセスを許可し、エージェントをインストールします

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

  3. [クラスター情報] ページで、[基本情報] タブをクリックします。 [クラスターリソース] セクションで、[ワーカーRAMロール] の横にあるURLをクリックします。

  4. ワーカーRAMロールの基本情報ページで、[権限] タブをクリックし、[ポリシー] 列の権限ポリシー名をクリックします。 ポリシーに次の内容が含まれているかどうかを確認します。 そうでない場合は、[ポリシードキュメントの変更] をクリックします。 [ポリシードキュメント] セクションで、次のコンテンツを追加し、[OK] をクリックします。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetInstanceVpcEndpoint",
                    "cr:ListInstanceEndpoint"
                ],
                "Resource": "*"
            }
        ]
    }
  5. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[Marketplace] > [Marketplace] を選択します。

  6. [アプリカタログ] ページで、検索ボックスにack-acr-acceleration-p2pと入力し、対応するエージェントを見つけて、エージェントのカードをクリックします。

  7. エージェントの詳細ページで、右上隅の [デプロイ] をクリックします。

  8. [作成] パネルで、[クラスター][名前空間] を設定し、リリース名を設定し、[次へ] をクリックします。

  9. [パラメーター] パネルで、チャートのバージョンを最新バージョンに設定し、acrInstancesを手順1で取得したContainer Registry Enterprise EditionインスタンスのIDに設定します。 Container Registry Enterprise Editionインスタンスが複数ある場合は、acrInstancesを設定するときにIDをコンマ (,) で区切ります。

    # 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
    説明
    • デフォルトでは、P2Pエージェントはノードでポート65001を使用します。 ポート65001が別のエージェントによって占有されている場合は、P2Pエージェントのポートを変更します。

    • ACKクラスターとContainer Registry Enterprise Editionインスタンスが同じリージョンにある場合は、regionパラメーターとvpcIdパラメーターを空のままにすることができます。 ACKクラスターとContainer Registry Enterprise Editionインスタンスが異なるリージョンに存在する場合、regionパラメーターをContainer Registry Enterprise Editionインスタンスが存在するリージョンに設定し、vpcIdパラメーターをContainer Registry Enterprise Editionインスタンスに関連付けられたVPCのIDに設定する必要があります。

    • ビジネスコンテナイメージがラージモデルなどの超ラージイメージの場合、ノードのステータスに基づいてP2Pデータのキャッシュモードを調整する必要があります。

      • データディスクベースのキャッシングモード: これは、P2Pデータのデフォルトのキャッシングモードである。 ノードのデータディスクがAutoPLタイプで、p2p.v2.cache.mo deの値がdiskであることを確認します。

      • メモリベースのキャッシングモード: ノードに8 GB以上の空きメモリがあり、p2p.v2.cache.mo deの値がMemoryであることを確認します。

RAMユーザーのAccessKeyペアを使用して、P2PエージェントにContainer Registry Enterprise Editionインスタンスへのアクセスを許可し、エージェントをインストールします

  1. RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。

  2. RAMユーザーに次の権限を追加し、RAMユーザーのAccessKeyペアを取得します。 詳細については、「RAMユーザーのAccessKeyペアに関する情報の表示」をご参照ください。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetInstanceVpcEndpoint",
                    "cr:ListInstanceEndpoint"
                ],
                "Resource": "*"
            }
        ]
    }
  3. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[Marketplace] > [Marketplace] を選択します。

  4. [アプリカタログ] ページで、検索ボックスにack-acr-acceleration-p2pと入力し、対応するエージェントを見つけて、エージェントのカードをクリックします。

  5. エージェントの詳細ページで、右上隅の [デプロイ] をクリックします。

  6. [作成] パネルで、[クラスター][名前空間] を設定し、リリース名を設定し、[次へ] をクリックします。

  7. [パラメーター] パネルで、チャートのバージョンを最新バージョンに設定し、acrInstancesを手順1で取得したContainer Registry Enterprise EditionインスタンスのIDに設定します。 Container Registry Enterprise Editionインスタンスが複数ある場合は、acrInstancesを設定するときにIDをコンマ (,) で区切ります。 取得したAccessKey IDとAccessKeyシークレットを入力します。

    # 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
    説明
    • デフォルトでは、P2Pエージェントはノードでポート65001を使用します。 ポート65001が別のエージェントによって占有されている場合は、P2Pエージェントのポートを変更します。

    • ACKクラスターとContainer Registry Enterprise Editionインスタンスが同じリージョンにある場合は、regionパラメーターとvpcIdパラメーターを空のままにすることができます。 ACKクラスターとContainer Registry Enterprise Editionインスタンスが異なるリージョンに存在する場合、regionパラメーターをContainer Registry Enterprise Editionインスタンスが存在するリージョンに設定し、vpcIdパラメーターをContainer Registry Enterprise Editionインスタンスに関連付けられたVPCのIDに設定する必要があります。

    • ビジネスコンテナイメージがラージモデルなどの超ラージイメージの場合、ノードのステータスに基づいてP2Pデータのキャッシュモードを調整する必要があります。

      • データディスクベースのキャッシングモード: これは、P2Pデータのデフォルトのキャッシングモードである。 ノードのデータディスクがAutoPLタイプで、p2p.v2.cache.mo deの値がdiskであることを確認します。

      • メモリベースのキャッシングモード: ノードに8 GB以上の空きメモリがあり、p2p.v2.cache.mo deの値がMemoryであることを確認します。

RRSA機能を使用して、P2PエージェントにContainer Registry Enterprise Editionインスタンスへのアクセスを許可し、エージェントをインストールします

RRSA機能を使用して、クラスター内のポッドでアクセス制御を実行できます。

RRSA機能は、バージョン1.22以降のKubernetesクラスターでのみ使用できます。

重要
  • RRSA機能を有効にするには、P2Pエージェントをv0.3.6以降にアップグレードする必要があります。

  • P2PエージェントのRRSA機能を有効にするには、ACKコンソールの [クラスター情報] ページの [基本情報] タブでRRSAを有効にし、P2PエージェントのRRSAを設定する必要があります。 操作シーケンスを逆にしてP2PエージェントのRRSAを設定し、ACKコンソールの [クラスター情報] ページの [基本情報] タブでRRSAを有効にする場合は、RRSAの設定後にP2Pエージェントをアンインストールして再インストールする必要があります。 これにより、RRSA機能が有効になります。

  1. クラスターのRRSA機能を有効にします。 詳細については、「RRSAを使用して異なるポッドに異なるクラウドサービスへのアクセスを許可する」をご参照ください。

  2. Container Registry Enterprise EditionインスタンスにアクセスするようにRRSAロールを設定します。

    • Container Registry Enterprise EditionインスタンスとACKクラスターは、同じAlibaba Cloudアカウントに属しています。

      たとえば、アカウントAがContainer Registry Enterprise EditionインスタンスおよびACKクラスターの所有者である場合、アカウントaのRAMロールを作成します。詳細については、「信頼できるAlibaba CloudアカウントのRAMロールの作成」をご参照ください。 次の権限ポリシーをRAMロールにアタッチします。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:GetInstanceVpcEndpoint",
                      "cr:ListInstanceEndpoint"
                  ],
                  "Resource": "*"
              }
          ]
      }
      説明
      • サンプルコードの <oidc_issuer_url> を、ACKクラスターのOpenID Connect (OIDC) IDプロバイダー (IdP) のURLに置き換えます。 URLは、ACKコンソール[クラスター情報] ページの [基本情報] タブで取得できます。

      • サンプルコードの <oidc_provider_arn> をACKクラスターのOIDC IdP ARN (Alibaba Cloud Resource Name) に置き換えます。 ARNは、ACKコンソール[クラスター情報] ページの [基本情報] タブで取得できます。

      {
        "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"
      }
    • Container Registry Enterprise EditionインスタンスとACKクラスターは、異なるAlibaba Cloudアカウントに属しています。

      たとえば、アカウントAがACKクラスターの所有者であり、アカウントBがContainer Registry Enterprise Editionインスタンスの所有者である場合、アカウントAのACKクラスターにアカウントBのContainer Registry Enterprise Editionインスタンスへのアクセスを許可する必要があります。

      アカウントaのRAMロールを作成します。詳細については、「信頼できるAlibaba CloudアカウントのRAMロールの作成」をご参照ください。 AliyunSTSAssumeRoleAccessポリシーをアカウントAのRAMロールにアタッチします。このポリシーは、アカウントAのRAMロールにアカウントBのRAMロールを引き受ける権限を付与します。アカウントAの信頼ポリシーを変更します。

      説明
      • サンプルコードの <oidc_issuer_url> をACKクラスターのOIDC IdPのURLに置き換えます。 URLは、ACKコンソール[クラスター情報] ページの [基本情報] タブで取得できます。

      • サンプルコードの <oidc_provider_arn> をACKクラスターのOIDC IdP ARNに置き換えます。 ARNは、ACKコンソール[クラスター情報] ページの [基本情報] タブで取得できます。

      {
        "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"
      }

      Container Registry Enterprise EditionインスタンスにアクセスできるアカウントBのRAMロールを作成し、[信頼ポリシー管理] をクリックして、アカウントaのRAMロールのARNを追加します。次のポリシーをアカウントBのRAMロールにアタッチして、アカウントBのRAMロールに次の権限を付与します。

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

      アカウントBのRAMロールにMaxSessionDurationパラメーターを設定できます。MaxSessionDurationパラメーターの有効値の範囲は3600〜43200秒です。 次のステップ7でRRSA機能を設定するときに、expireDurationパラメーターを設定する必要があります。 MaxSessionDurationexpireDurationに同じ値を指定することを推奨します。 expireDurationの値は、MaxSessionDurationの値以下にすることができます。

  3. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[Marketplace] > [Marketplace] を選択します。

  4. [アプリカタログ] ページで、検索ボックスにack-acr-acceleration-p2pと入力し、対応するエージェントを見つけて、エージェントのカードをクリックします。

  5. エージェントの詳細ページで、右上隅の [デプロイ] をクリックします。

  6. [作成] パネルで、[クラスター][名前空間] を設定し、リリース名を設定し、[次へ] をクリックします。

  7. [パラメーター] パネルで、チャートのバージョンを最新バージョンに設定し、registryInstancesを手順1で取得したContainer Registry Enterprise EditionインスタンスのIDに設定します。 Container Registry Enterprise Editionインスタンスが複数ある場合は、registryInstancesを設定するときに、IDをコンマ (,) で区切ります。 次の表に、RRSA機能を設定するときに設定する必要があるパラメーターを示します。

    パラメーター

    説明

    rrsa.enable

    RRSA機能を有効にするかどうかを指定します。

    true

    rrsa.rrsaRoleARN

    アカウントA用に作成したRAMロールのARN。

    acs:ram::aaa

    rrsa.rrsaOIDCProviderRoleARN

    ACKコンソールの [クラスター情報] ページの [基本情報] タブで取得したOIDC IdPのARN。

    acs:ram::bbb

    rrsa.assumeRoleARN

    アカウントB用に作成したRAMロールのARN。Container Registry Enterprise EditionインスタンスとACKクラスターが同じAlibaba Cloudアカウントに属している場合、このパラメーターは空のままにします。

    acs:ram::ccc

    rrsa.expireDuration

    アカウントB用に作成したRAMロールのセッション期間。セッション期間は、aliyun-acr-credential-helperによって生成されたシークレットの有効期間と同じです。 Container Registry Enterprise EditionインスタンスとACKクラスターが同じAlibaba Cloudアカウントに属している場合、このパラメーターは空のままにします。

    重要

    expireDuration値は、アカウントBのRAMロールのMaxSessionDuration値より大きくすることはできません。

    デフォルト値は 3600 です。 有効な値は 3600~43200 です。 単位は秒です。

    アカウントBのRAMロールのMaxSessionDurationパラメーターを43200に設定します。

    その他のパラメーターについては、「付録」をご参照ください。

    説明
    • デフォルトでは、P2Pエージェントはノードでポート65001を使用します。 ポート65001が別のエージェントによって占有されている場合は、P2Pエージェントのポートを変更します。

    • ACKクラスターとContainer Registry Enterprise Editionインスタンスが同じリージョンにある場合は、regionパラメーターとvpcIdパラメーターを空のままにすることができます。 ACKクラスターとContainer Registry Enterprise Editionインスタンスが異なるリージョンに存在する場合、regionパラメーターをContainer Registry Enterprise Editionインスタンスが存在するリージョンに設定し、vpcIdパラメーターをContainer Registry Enterprise Editionインスタンスに関連付けられたVPCのIDに設定する必要があります。

    • ビジネスコンテナイメージがラージモデルなどの超ラージイメージの場合、ノードのステータスに基づいてP2Pデータのキャッシュモードを調整する必要があります。

      • データディスクベースのキャッシングモード: これは、P2Pデータのデフォルトのキャッシングモードである。 ノードのデータディスクがAutoPLタイプで、p2p.v2.cache.mo deの値がdiskであることを確認します。

      • メモリベースのキャッシングモード: ノードに8 GB以上の空きメモリがあり、p2p.v2.cache.mo deの値が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エージェントのその他のパラメーターを次の表に示します。

データキャッシュに関連するパラメーター

データディスクベースのキャッシングモードのデフォルト値

メモリベースのキャッシングモードのデフォルト値

説明

blocksize

256

256

データソースObject Storage Service (OSS) への1回のリクエスト内のシャードのサイズ。

capacity

4294967296

0

ディスクキャッシュのサイズ。

optionBlockSize

67108864

8589934592

メモリキャッシュのサイズ。 (単位:GB)

  • データディスクベースのキャッシングモードでは、P2Pエージェントはメモリレベルとディスクレベルでデータをキャッシュし、optionBlockSizeパラメーターはメモリレベルキャッシュのサイズを指定します。

  • メモリベースのキャッシュモードでは、このパラメーター値はメモリキャッシュのサイズに等しくなります。

memoryCacheCapacityGB

1

8

  • (単位:GB) データディスクベースのキャッシュモードでは、デフォルト値を使用します。

  • メモリベースのキャッシングモードでは、このパラメーター値はoptionBlockSizeパラメーターの値に等しくなります。

aio

0

0

このパラメーターは、libaio (Linuxネイティブ非同期I/O) ライブラリを有効にするために使用されます。 このパラメーターは、メモリベースのキャッシュモードでは無効です。

  • データディスクベースのキャッシュモードで、ack-acr-acceleration-p2pエージェントの自動PL機能を有効にし、ディスクパフォーマンスレベルをPL3に設定すると、このパラメーターを使用してデータI/Oパフォーマンスを向上させることができます。

  • データディスクベースのキャッシュモードでは、ディスクパフォーマンスレベルをPL0またはPL1に設定すると、AIO (非同期I/O) のディスク書き込み時間が長くなると、P2Pネットワーク全体で多数のタイムアウト例外が発生する可能性があります。

DeployConfig

proxyFsParallels

128

P2Pエージェントが並列に処理できる要求の最大数。

AgentConfig

connectTimeout (s)

5

P2Pエージェントがアップストリームノードとの接続を確立するためのタイムアウト期間。 単位は秒です。

transferTimeout (s)

15

P2Pエージェントがアップストリームノードからデータ転送を受信するためのタイムアウト期間。 単位は秒です。 値を15に設定します。