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

Container Service for Kubernetes:ACK Edge クラスターに P2P アクセラレーションキットをインストールする

最終更新日:Nov 09, 2025

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

前提条件

  • Container Registry Enterprise Edition の標準版または Advanced Edition インスタンスが作成されていること。詳細については、「Container Registry Enterprise Edition インスタンスの作成」をご参照ください。

  • Kubernetes 1.26.3 以降を実行する ACK Edge クラスターが作成されていること。

  • ACK Edge クラスターが属する VPC (Virtual Private Cloud) が Container Registry Enterprise Edition インスタンスで設定されていること。詳細については、「VPC ACL の設定」をご参照ください。

  • エッジノードで使用するには、専用のエッジノードプールを作成し、エッジノードプール内のノード間接続を有効にする必要があります。

ステップ 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 コンポーネントをインストールし、Container Registry Enterprise Edition インスタンスへのアクセス権を付与する

次のいずれかのメソッドを使用して、P2P コンポーネントに Container Registry Enterprise Edition インスタンスへのアクセス権を付与できます。

worker RAM ロールを使用して P2P コンポーネントをインストールし、対応する権限をコンポーネントに付与する

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

  2. クラスター ページで、ターゲットクラスターを見つけてその名前をクリックします。左側のナビゲーションウィンドウで、クラスター情報 をクリックします。

  3. [クラスター情報] ページで、[基本情報] タブをクリックします。[クラスターリソース] セクションで、[Worker RAM ロール] の右側にある名前をコピーし、リンクをクリックして [RAM] コンソールに入り、Worker RAM ロールに権限を付与します。

    1. 次のカスタム権限ポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "cr:GetInstanceVpcEndpoint",
                      "cr:ListInstanceEndpoint"
                  ],
                  "Resource": "*"
              }
          ]
      }
    2. [RAM ロール] ページで、Worker RAM ロールを検索し、上記で作成したカスタム権限ポリシーを付与します。詳細なステップについては、「RAM ロールへの権限付与」をご参照ください。

  4. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[マーケットプレイス] > [マーケットプレイス] を選択します。

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

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

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

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

    説明
    • デフォルトでは、P2P コンポーネントはノードでポート 65001 を使用します。ポート 65001 が別のコンポーネントによって占有されている場合は、ビジネス要件に基づいて P2P コンポーネントが使用するポートを変更してください。

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

    • ACK Edge クラスターで P2P を使用する場合、特定のノードプールで P2P 機能を有効にするには、edgeNodePool.id パラメーターでノードプール ID を指定する必要があります (例: npxyzxxxxxxxxx)。設定するノードプールは、クラウドノードプールまたはノード間接続を持つ専用のエッジノードプールのいずれかである必要があります。このパラメーターが設定されていない場合、P2P 機能はすべてのエッジノードで有効になります (エッジノードが Express Connect 回線を使用して Container Registry Enterprise Edition インスタンスの VPC に接続されており、エッジノードがネットワーク経由で相互に通信できることを確認してください)。

    # ACR EE インスタンスの ID、複数サポート、例: "cri-xxx,cri-yyy"
    acrInstances: ""
    
    
    # ACR EE インスタンスのリージョン、デフォルトはクラウド上のクラスターのリージョンです。
    # クラウドクラスターでのリージョン間アクセス、または IDC クラスターでのアクセスの場合に設定する必要があります。
    region: ""
    
    # ACR EE インスタンスの VPC ネットワークに接続されている VPC、デフォルトはクラウド上のクラスターの VPC です。
    # クラウドクラスターでのリージョン間アクセス、または VPC ネットワーク経由での IDC クラスターでのアクセスの場合に設定する必要があります。
    vpcId: ""
    
    # [オプション] (クラスタータイプが ACK Edge の場合、このパラメーターを設定できます)
    # エッジノードプールの ID (名前ではありません!!!)、例: "np8b6aaa89e93a44b5b54180898247****"
    # edgeNodePool.id が設定されている場合、指定されたノードプールに p2p エージェントをデプロイするために使用されます。
    # それ以外の場合は、すべてのエッジノードプールにデプロイされます。
    edgeNodePool:
      id: ""
    
    
    p2p:
      # ホストネットワーク内の P2P エージェントのポート
      port: 65001

RAM ユーザーの AccessKey ペアを使用して P2P コンポーネントをインストールし、対応する権限をコンポーネントに付与する

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

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

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

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

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

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

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

    説明
    • デフォルトでは、P2P コンポーネントはノードでポート 65001 を使用します。ポート 65001 が別のコンポーネントによって占有されている場合は、ビジネス要件に基づいて P2P コンポーネントが使用するポートを変更してください。

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

    • ACK Edge クラスターで P2P を使用する場合、特定のノードプールで P2P 機能を有効にするには、edgeNodePool.id パラメーターでノードプール ID を指定する必要があります (例: npxyzxxxxxxxxx)。設定するノードプールは、クラウドノードプールまたはノード間接続を持つ専用のエッジノードプールのいずれかである必要があります。このパラメーターが設定されていない場合、P2P 機能はすべてのエッジノードで有効になります (エッジノードが Express Connect 回線を使用して Container Registry Enterprise Edition インスタンスの VPC に接続されており、エッジノードがネットワーク経由で相互に通信できることを確認してください)。

    # ACR EE インスタンスの ID、複数サポート、例: "cri-xxx,cri-yyy"
    acrInstances: ""
    
    
    # K8s クラスターが独自の IDC に構築されている場合は、次のパラメーターを入力してください
    accessKey: ""
    accessKeySecret: ""
    
    # ACR EE インスタンスのリージョン、デフォルトはクラウド上のクラスターのリージョンです。
    # クラウドクラスターでのリージョン間アクセス、または IDC クラスターでのアクセスの場合に設定する必要があります。
    region: ""
    # ACR EE インスタンスの VPC ネットワークに接続されている VPC、デフォルトはクラウド上のクラスターの VPC です。
    # クラウドクラスターでのリージョン間アクセス、または VPC ネットワーク経由での IDC クラスターでのアクセスの場合に設定する必要があります。
    
    vpcId: ""
    
    # [オプション] (クラスタータイプが ACK Edge の場合、このパラメーターを設定できます)
    # エッジノードプールの ID (名前ではありません!!!)、例: "np8b6aaa89e93a44b5b54180898247****"
    # edgeNodePool.id が設定されている場合、指定されたノードプールに p2p エージェントをデプロイするために使用されます。
    # それ以外の場合は、すべてのエッジノードプールにデプロイされます。
    edgeNodePool:
      id: ""
    
    p2p:
      # ホストネットワーク内の P2P エージェントのポート
      port: 65001

RRSA を使用して P2P コンポーネントをインストールし、対応する権限をコンポーネントに付与する

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

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

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

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

  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 リソースネーム) に置き換えます。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 ロールを作成する」をご参照ください。アカウント A の RAM ロールに AliyunSTSAssumeRoleAccess ポリシーをアタッチします。このポリシーは、アカウント 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 コンソールにログインします。左側のナビゲーションウィンドウで、[マーケットプレイス] > [マーケットプレイス] を選択します。

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

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

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

  7. [パラメーター] パネルで、チャートのバージョンを最新バージョンに設定し、acrInstances をステップ 1 で取得した Container Registry Enterprise Edition インスタンスの ID に設定します。複数の Container Registry Enterprise Edition インスタンスがある場合は、acrInstances を設定する際に 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 Edge クラスターと Container Registry Enterprise Edition インスタンスが同じリージョンにある場合、region および vpcId パラメーターは空のままにできます。ACK Edge クラスターと Container Registry Enterprise Edition インスタンスが異なるリージョンにある場合は、region パラメーターを Container Registry Enterprise Edition インスタンスが存在するリージョンに設定し、vpcId パラメーターを Container Registry Enterprise Edition インスタンスに関連付けられている VPC の ID に設定する必要があります。

    • ACK Edge クラスターで P2P を使用する場合、特定のノードプールで P2P 機能を有効にするには、edgeNodePool.id パラメーターでノードプール ID を指定する必要があります (例: npxyzxxxxxxxxx)。設定するノードプールは、クラウドノードプールまたはノード間接続を持つ専用のエッジノードプールのいずれかである必要があります。このパラメーターが設定されていない場合、P2P 機能はすべてのエッジノードで有効になります (エッジノードが Express Connect 回線を使用して Container Registry Enterprise Edition インスタンスの VPC に接続されており、エッジノードがネットワーク経由で相互に通信できることを確認してください)。

    # ACR EE インスタンスの ID、複数サポート、例: "cri-xxx,cri-yyy"
    acrInstances: ""
    
    rrsa:
      enable: true
      rrsaRoleARN: ""
      rrsaOIDCProviderRoleARN: ""
      assumeRoleARN: ""
      expireDuration: 3600
    
    # ACR EE インスタンスのリージョン、デフォルトはクラウド上のクラスターのリージョンです。
    # クラウドクラスターでのリージョン間アクセス、または IDC クラスターでのアクセスの場合に設定する必要があります。
    region: ""
    
    vpcId: ""
    
    # [オプション] (クラスタータイプが ACK Edge の場合、このパラメーターを設定できます)
    # エッジノードプールの ID (名前ではありません!!!)、例: "np8b6aaa89e93a44b5b54180898247****"
    # edgeNodePool.id が設定されている場合、指定されたノードプールに p2p エージェントをデプロイするために使用されます。
    # それ以外の場合は、すべてのエッジノードプールにデプロイされます。
    edgeNodePool:
      id: ""
    
    p2p:
      # ホストネットワーク内の P2P エージェントのポート
      port: 65001