ACK クラスターで P2P アクセラレーション機能を使用すると、イメージのプルを高速化し、アプリケーションのデプロイ時間を短縮できます。このトピックでは、ACK クラスターに P2P アクセラレーションエージェントをインストールする方法について説明します。
前提条件
-
ACR Enterprise Edition インスタンス (Standard または Advanced Edition) を作成済みであること。
-
ACK マネージドクラスターまたは ACK 専用クラスター、あるいは ACK Serverless Pro クラスターを作成済みであること。
-
ご利用の ACK クラスターの VPC からのアクセスを許可するように ACR Enterprise Edition インスタンスを設定済みであること。詳細については、「VPC のアクセス制御の設定」をご参照ください。
イメージ使用の制限事項
大規模言語モデル用のイメージなど、超大規模イメージを使用する場合、効率的な P2P イメージプルを確保するために、次のいずれかの要件を満たす必要があります:ノードプールのノードに AutoPL タイプのデータディスクがあること、またはノードに P2P データキャッシング用に 8 GB 以上の空きメモリがあること。
ステップ 1:インスタンス ID の取得と P2P アクセラレーションの有効化
Container Registry コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
-
概要 ページで、インスタンス ID を記録します。次に、コンポーネントの設定 セクションで、P2P アクセラレーション をオンにし、確認ダイアログボックスで OK をクリックします。
警告P2P アクセラレーションエージェントを無効にする前に、P2P 機能の使用を停止し、関連するすべてのクラスターからエージェントをアンインストールする必要があります。機能を再度有効にするには、エージェントを再インストールする必要があります。
ステップ 2:P2P エージェントのインストールと権限付与
次の 3 つの方法のいずれかを使用して、P2P アクセラレーションエージェントに ACR Enterprise Edition インスタンスへのアクセス権限を付与できます。
-
worker RAM ロールを使用した権限付与とインストール。
制限事項:ACR Enterprise Edition インスタンスと ACK クラスターは、同じ Alibaba Cloud アカウントに属している必要があります。
-
RAM ユーザーの AccessKey ペアを使用した権限付与とインストール。
-
RAM Roles for Service Accounts (RRSA) を使用した権限付与とインストール。
制限事項:この方法は、Kubernetes 1.22 以降を実行する ACK マネージドクラスターでのみサポートされます。
worker RAM ロール
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、クラスター情報 をクリックします。
-
Cluster Information ページで、基本情報 タブをクリックします。クラスターリソース セクションで、worker RAM ロールの名前をコピーし、リンクをクリックして Resource Access Management (RAM) コンソールを開き、ロールに権限を付与します。
-
次のカスタムポリシーを作成します。詳細については、「カスタムポリシーの作成」をご参照ください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] } -
ロール ページで、worker RAM ロールを見つけ、作成したカスタムポリシーをアタッチします。詳細については、「RAM ロールへの権限付与」をご参照ください。
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、 をクリックします。
-
アプリカタログ ページで、検索ボックスに ack-acr-acceleration-p2p と入力し、コンポーネントを見つけて、そのカードをクリックします。
-
コンポーネント詳細ページで、右上隅の ワンクリックデプロイ をクリックします。
-
作成 パネルで、クラスター と 名前空間 を選択し、リリース名を指定して、次へ をクリックします。
-
パラメーター パネルで、最新のチャートバージョンを選択し、acrInstances パラメーターをステップ 1 で記録したインスタンス ID に設定します。複数のインスタンスがある場合は、ID をカンマ (,) で区切ります。
# ACR Enterprise Edition インスタンスの ID。複数指定可能 (例: "cri-xxx,cri-yyy") acrInstances: "" # ACR Enterprise Edition インスタンスのリージョン。デフォルト値はクラスターのリージョンです。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターからインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 region: "" # ACR Enterprise Edition インスタンスの VPC ネットワークに接続されている VPC。デフォルト値はクラスターの VPC です。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターから VPC ネットワーク経由でインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 vpcId: "" p2p: # ホストネットワーク内の P2P エージェントのポート。 port: 65001説明-
デフォルトでは、エージェントはノードのポート 65001 を使用します。ポートの競合が発生した場合は、必要に応じてポート番号を変更してください。
-
ACK クラスターと ACR Enterprise Edition インスタンスが同じリージョンにある場合は、
regionとvpcIdパラメーターを空のままにすることができます。異なるリージョンにある場合は、regionパラメーターを ACR Enterprise Edition インスタンスのリージョンに、vpcIdパラメーターをインスタンスに関連付けられている VPC の ID に設定する必要があります。 -
大規模言語モデル用のイメージなど、超大規模イメージの場合は、ノードの構成に基づいて P2P データキャッシングモードを調整する必要があります:
-
データディスクベースのキャッシングモード (デフォルト):ノードのデータディスクタイプが AutoPL であることを確認します。
p2p.v2.cache.modeをdiskに設定します。 -
メモリベースのキャッシングモード:ノードに 8 GB 以上の空きメモリがあることを確認し、
p2p.v2.cache.modeをmemoryに設定します。
-
-
RAM ユーザーの AccessKey ペア
-
RAM ユーザーを作成します。詳細については、「RAM ユーザーの作成」をご参照ください。
-
RAM ユーザーに次の権限を付与します。次に、AccessKey ペアを作成し、AccessKey ID と AccessKey Secret を記録します。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] } ACK コンソールにログインします。左側のナビゲーションウィンドウで、 をクリックします。
-
アプリカタログ ページで、検索ボックスに ack-acr-acceleration-p2p と入力し、コンポーネントを見つけて、そのカードをクリックします。
-
コンポーネント詳細ページで、右上隅の ワンクリックデプロイ をクリックします。
-
作成 パネルで、クラスター と 名前空間 を選択し、リリース名を指定してから、次へ をクリックします。
-
パラメーター パネルで、最新のチャートバージョンを選択します。acrInstances パラメーターをステップ 1 で記録したインスタンス ID に設定します。複数のインスタンスがある場合は、ID をカンマ (,) で区切ります。次に、記録した AccessKey ID と AccessKey Secret を入力します。
# ACR Enterprise Edition インスタンスの ID。複数指定可能 (例: "cri-xxx,cri-yyy") acrInstances: "" # Kubernetes クラスターがデータセンターでセルフマネージドされている場合は、次のパラメーターを指定する必要があります。 accessKey: "" accessKeySecret: "" # ACR Enterprise Edition インスタンスのリージョン。デフォルト値はクラスターのリージョンです。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターからインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 region: "" # ACR Enterprise Edition インスタンスの VPC ネットワークに接続されている VPC。デフォルト値はクラスターの VPC です。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターから VPC ネットワーク経由でインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 vpcId: "" p2p: # ホストネットワーク内の P2P エージェントのポート。 port: 65001説明-
デフォルトでは、エージェントはノードのポート 65001 を使用します。ポートの競合が発生した場合は、必要に応じてポート番号を変更してください。
-
ACK クラスターと ACR Enterprise Edition インスタンスが同じリージョンにある場合は、
regionとvpcIdパラメーターを空のままにすることができます。異なるリージョンにある場合は、regionパラメーターを ACR Enterprise Edition インスタンスのリージョンに、vpcIdパラメーターをインスタンスに関連付けられている VPC の ID に設定する必要があります。 -
大規模言語モデル用のイメージなど、超大規模イメージの場合は、ノードの構成に基づいて P2P データキャッシングモードを調整する必要があります:
-
データディスクベースのキャッシングモード (デフォルト):ノードのデータディスクタイプが AutoPL であることを確認します。
p2p.v2.cache.modeをdiskに設定します。 -
メモリベースのキャッシングモード:ノードに 8 GB 以上の空きメモリがあることを確認し、
p2p.v2.cache.modeをmemoryに設定します。
-
-
RRSA
RAM Roles for Service Accounts (RRSA) 機能は、Pod レベルでのきめ細かい権限管理を提供します。
RRSA 機能は、Kubernetes 1.22 以降を実行するクラスターでのみサポートされます。
-
RRSA を使用するには、エージェントをバージョン 0.3.6 以降にアップグレードする必要があります。
-
RRSA は正しい順序で有効にしてください:まずクラスターで、次に P2P アクセラレーションエージェントで有効にします。これらの手順を誤った順序で実行した場合、RRSA を有効にするにはエージェントを再インストールする必要があります。
-
クラスターで RRSA を有効にします。詳細については、「RRSA を使用してサービスアカウントの RAM ロールを設定し、Pod のきめ細かい権限管理を実施する」をご参照ください。
-
RAM ロールに ACR リソースへのアクセス権限を設定します。
-
シナリオ 1:ACK クラスターと ACR Enterprise Edition インスタンスが同じ Alibaba Cloud アカウントに属している場合。
アカウント A が ACK クラスターと ACR Enterprise Edition インスタンスの両方を所有している場合、アカウント A で RAM ロールを作成し、それに次の権限ポリシーをアタッチします。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] }説明-
<oidc_issuer_url> を、お使いのクラスターの OIDC プロバイダーの URL に置き換えてください。 この URL は、[ACK コンソール]のクラスター詳細ページの基本情報タブで確認できます。
-
<oidc_provider_arn> を、クラスターの OIDC プロバイダーの 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" } -
-
シナリオ 2:ACK クラスターと ACR Enterprise Edition インスタンスが異なる Alibaba Cloud アカウントに属している場合。
アカウント A が ACK クラスターを所有し、アカウント B が ACR Enterprise Edition インスタンスを所有しているとします。アカウント A の ACK クラスターに、アカウント B の ACR リソースへのアクセス権限を付与する必要があります。
アカウント A で RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。AliyunSTSAssumeRoleAccess ポリシーをアタッチして、ロールに他のロールを引き受ける権限を付与します。次に、その信頼ポリシーを変更します。
説明-
<oidc_issuer_url> を、お使いのクラスターの OIDC プロバイダーの URL に置き換えます。この URL は、[ACK コンソール] のクラスター詳細ページの 基本情報 タブで確認できます。
-
<oidc_provider_arn> を、お使いのクラスターの OIDC プロバイダーの 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" }アカウント B で、ACR 関連の権限を持つ RAM ロールを作成します。トラスト規則 に、アカウント A のロールの ARN を追加します。アカウント B のロールに次の権限ポリシーをアタッチします。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetInstanceVpcEndpoint", "cr:ListInstanceEndpoint" ], "Resource": "*" } ] }説明この RAM ロールの最大セッション期間は 3,600 秒から 43,200 秒の間の値に設定できます。後で設定する expireDuration パラメーターは、この値を超えてはなりません。最良の結果を得るには、expireDuration を最大セッション期間と同じ値に設定してください。
-
-
ACK コンソールにログインします。左側のナビゲーションウィンドウで、 をクリックします。
-
アプリカタログ ページで、検索ボックスに ack-acr-acceleration-p2p と入力し、コンポーネントを見つけて、そのカードをクリックします。
-
コンポーネント詳細ページで、右上隅の ワンクリックデプロイ をクリックします。
-
作成 パネルで、クラスター と 名前空間 を選択し、リリース名を指定してから、次へ をクリックします。
-
パラメーター パネルで、最新のチャートバージョンを選択します。acrInstances パラメーターをステップ 1 で記録したインスタンス ID に設定します。複数のインスタンスがある場合は、ID をカンマ (,) で区切ります。次の表の説明に従って RRSA パラメーターを設定します。
パラメーター
説明
値
rrsa.enable
RRSA を有効にするかどうかを指定します。
true
rrsa.rrsaRoleARN
アカウント A で作成された RAM ロールの ARN。
例:
acs:ram::aaarrsa.rrsaOIDCProviderRoleARN
アカウント A のクラスターの OIDC プロバイダーの ARN。
例:
acs:ram::bbbrrsa.assumeRoleARN
アカウント B で作成された RAM ロールの ARN。同一アカウントのシナリオでは、このパラメーターは不要です。
例:
acs:ram::cccrrsa.expireDuration
アカウント B で作成されたロールのセッション期間。これは、エージェントによって生成される一時的な認証情報の有効期間を決定します。同一アカウントのシナリオでは、このパラメーターは不要です。
重要expireDuration の値は、アカウント B で作成されたロールの最大セッション期間を超えてはなりません。
デフォルト値は 3600 です。値は 3,600 から 43,200 の間でなければなりません。単位:秒。
その他のパラメーターについては、「付録」をご参照ください。
説明-
デフォルトでは、エージェントはノードのポート 65001 を使用します。ポートの競合が発生した場合は、必要に応じてポート番号を変更してください。
-
ACK クラスターと ACR Enterprise Edition インスタンスが同じリージョンにある場合は、
regionとvpcIdパラメーターを空のままにすることができます。異なるリージョンにある場合は、regionパラメーターを ACR Enterprise Edition インスタンスのリージョンに、vpcIdパラメーターをインスタンスに関連付けられている VPC の ID に設定する必要があります。 -
大規模言語モデル用のイメージなど、超大規模イメージの場合は、ノードの構成に基づいて P2P データキャッシングモードを調整する必要があります:
-
データディスクベースのキャッシングモード (デフォルト):ノードのデータディスクタイプが AutoPL であることを確認します。
p2p.v2.cache.modeをdiskに設定します。 -
メモリベースのキャッシングモード:ノードに 8 GB 以上の空きメモリがあることを確認し、
p2p.v2.cache.modeをmemoryに設定します。
-
# ACR Enterprise Edition インスタンスの ID。複数指定可能 (例: "cri-xxx,cri-yyy") acrInstances: "" rrsa: enable: true rrsaRoleARN: "" rrsaOIDCProviderRoleARN: "" assumeRoleARN: "" expireDuration: 3600 # ACR Enterprise Edition インスタンスのリージョン。デフォルト値はクラスターのリージョンです。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターからインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 region: "" # ACR Enterprise Edition インスタンスの VPC ネットワークに接続されている VPC。デフォルト値はクラスターの VPC です。 # クラスターとインスタンスが異なるリージョンにある場合、またはデータセンターのセルフマネージドクラスターから VPC ネットワーク経由でインスタンスにアクセスする場合は、このパラメーターを設定する必要があります。 vpcId: "" p2p: # ホストネットワーク内の P2P エージェントのポート。 port: 65001 -
付録
次の表は、ack-acr-acceleration-p2p コンポーネントのパラメーターの一部を説明しています。
|
ファイルキャッシュパラメーター |
デフォルト (ディスクモード) |
デフォルト (メモリモード) |
説明 |
|
blocksize |
256 |
256 |
ソースの Object Storage Service (OSS) からリクエストされる単一のデータチャンクのサイズ。 |
|
capacity |
4294967296 |
0 |
ディスクキャッシュのサイズ。 |
|
optionBlockSize |
67108864 |
8589934592 |
メモリキャッシュのサイズ:
|
|
memoryCacheCapacityGB |
1 |
8 |
|
|
aio |
0 |
0 |
libaio を有効にするかどうかを指定します。このパラメーターは、メモリベースのキャッシングモードでは効果がありません。
|
|
DeployConfig |
|||
|
proxyFsParallels |
128 |
P2P エージェントが処理できる同時リクエストの数。 |
|
|
AgentConfig |
|||
|
connectTimeout (s) |
5 |
P2P エージェントがアップストリームピアとの接続を確立するためのタイムアウト期間。 |
|
|
transferTimeout (s) |
15 |
データ転送のタイムアウト期間。この期間内にデータが受信されない場合、転送はタイムアウトします。 |
|