DataCache CRD(カスタムリソース定義)をデプロイした後、AIトレーニングモデルなど、ビジネスに必要なデータを事前にプルするためのDataCacheを作成できます。このトピックでは、DataCacheの作成に必要なパラメータについて説明します。また、DataCacheのクエリと削除の方法についても説明します。
前提条件
DataCache CRDがクラスターにデプロイされていること。詳細については、DataCache CRDのデプロイを参照してください。
DataCacheの作成
構成の説明
次のコードは、DataCacheのYAML構成ファイルのパラメータを示しています。
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-url
spec:
bucket: default
path: /demo/url
size: 20
retentionDays: 3
dataSource:
type: URL
options:
url: https://www.example.com
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******パラメータの説明:
apiVersion: APIバージョン。値をeci.aliyun.com/v1alpha1に設定します。
kind: リソースタイプ。値をDataCacheに設定します。
metadata
name: DataCacheの名前。
spec
bucket: DataCacheを格納するバケットの名前。デフォルト値:default。別の値を指定することもできます。eci-systemという名前のバケットは、Elastic Container Instanceの共通キャッシュを格納するために予約されており、このパラメータの値として使用することはできません。
path: データが格納されるパス。
size: DataCacheのサイズ。単位:GiB。デフォルト値:20。実際のデータサイズに基づいて必要なサイズを評価してください。
retentionDays: DataCacheの保持日数。保持日数が経過すると、DataCacheは削除されます。デフォルトでは、DataCacheは期限切れになりません。
dataSource: データソース。次の表は、データソースのtypeパラメータと各タイプのoptionsパラメータについて説明しています。
type
説明
options
URL
ハイパーリンクアドレス
url: データをダウンロードするURL。
accessToken: プライベートデータをプルする前に認証に使用されるトークン。
HuggingFaceまたはModelScope
repoSource: ModelScopeまたはHuggingFaceコミュニティからモデルまたはデータセットをプルします。有効な値:ModelScope/Model、ModelScope/DataSet、HuggingFace/Model、HuggingFace/DataSet。
repoId: モデルまたはデータセットのID。
revision: バージョン。デフォルト値:mainまたはmaster。
accessToken: プライベートデータをプルする前に認証に使用されるトークン。
NAS
ファイルストレージNAS(NAS)ファイルシステム
server: NASファイルシステムのマウントターゲット。
path: NASファイルシステムのサブディレクトリ。エクストリームNASファイルシステムの場合は、パスに
/shareというプレフィックスを付けます。例:/share/path。vers: NASファイルシステムのマウントに使用されるNFS(Network File System)プロトコルのバージョン番号。NFS v3を使用することをお勧めします。エクストリームNASはNFS v3のみをサポートしています。
options: typeパラメータをNASに設定するときに使用されるパラメータ。NASサービスで推奨されるパラメータを使用することをお勧めします。例:
nolock,tcp,noresvport。
OSS
オブジェクトストレージサービス(OSS)バケット
bucket: OSSバケットの名前。
url: OSSバケットのエンドポイント。
path: OSSバケットのサブディレクトリ。パスはOSSバケットのルートディレクトリからの相対パスです。デフォルト値:
/。otherOpts: OSSバケットをマウントするために指定されたカスタムオプション。形式:
-o *** -o ***。例:-o max_stat_cache_size=0 -o allow_other。ramRole: RAMを使用して権限を付与する場合に使用するResource Access Management (RAM)ロール。
説明RAMロールを作成し、OSSバケットにアクセスするための権限をRAMロールに付与します。詳細については、信頼できるAlibaba CloudサービスのRAMロールの作成とRAMロールへの権限の付与を参照してください。
RAMロールを作成する際は、「信頼できるエンティティを選択」パラメータにAlibaba Cloudサービス、「ロールタイプ」パラメータに標準サービスロール、「信頼できるサービスを選択」パラメータにElastic Compute Serviceを選択します。RAMロールに権限を付与する際は、AliyunOSSFullAccessポリシーをRAMロールにアタッチします。
akId: AccessKeyペアを使用して権限を付与する場合に使用するAccessKey ID。詳細については、AccessKey ペアの作成を参照してください。
akSecret: AccessKeyペアを使用して権限を付与する場合に使用するAccessKeyシークレット。詳細については、AccessKey ペアの作成を参照してください。
SNAPSHOT
スナップショット
snapshotId: スナップショットのID。
netConfig
securityGroupId: 生成された弾性コンテナインスタンスが属するセキュリティグループのID。
vSwitchId: 生成された弾性コンテナインスタンスが接続されているvSwitchのID。
インターネット経由でデータをプルする場合、vSwitchにソースNAT(SNAT)ゲートウェイが構成されていない場合は、弾性コンテナインスタンスに弾性IPアドレス(EIP)を関連付けることができます。この場合、netConfigセクションにEIP関連のパラメータを追加できます。
netConfig: eipInstanceId: eip-2zey74a7zienoxf***** # eipInstanceIdまたはeipCreateParamを指定します。 eipCreateParam: # eipInstanceIdまたはeipCreateParamを指定します。 bandwidth: 5 commonBandwidthPackage: cbwp-2zeukbj916scmj5****** internetChargeType: PayByTraffic publicIpAddressPoolId: pippool-bp187arfugi543y1s**** ISP: BGPeipInstanceId: EIP ID。指定されたvSwitchにSNATゲートウェイが構成されていない場合、既存のEIPを弾性コンテナインスタンスに関連付けて、インターネット経由でデータをプルできます。
eipCreateParam: 指定されたvSwitchにSNATゲートウェイが構成されておらず、既存のEIPが存在しない場合、次のパラメータを構成してEIPを作成し、EIPを弾性コンテナインスタンスに関連付けることができます。これにより、インターネット経由でデータをプルできます。
bandwidth: EIPの帯域幅。単位:Mbit/s。デフォルト値:5。
commonBandwidthPackage: EIPにバインドされている既存のEIP帯域幅プラン。詳細については、インターネット共有帯域幅とはを参照してください。
internetChargeType: EIPの課金方法。有効な値:PayByBandwidth(帯域幅による課金)とPayByTraffic(データ転送による課金)。詳細については、課金概要トピックの「課金方法」セクションを参照してください。
publicIpAddressPoolId: パブリックIPアドレスプールのID。EIPはIPアドレスプールから割り当てられます。デフォルトでは、IPアドレスプール機能を使用できません。この機能を使用するには、クォータセンターコンソールで権限を申請する必要があります。詳細については、IPアドレスプールの作成と管理を参照してください。
ISP: EIPの回線タイプ。有効な値:BGPとBGP_PRO。デフォルト値:BGP。詳細については、EIPとはトピックの「回線タイプ」セクションを参照してください。
構成例
YAML構成ファイルを作成し、kubectlコマンドを実行してDataCacheを作成します。YAML構成ファイルの名前はdatacache.yamlとします。
新しいDataCacheを作成します。
kubectl create -f datacache.yamlDataCacheを更新します。
kubectl apply -f datacache.yaml
DataCacheのYAML構成ファイル:
URL
URLからデータをプルします。
apiVersion: eci.aliyun.com/v1alpha1 kind: DataCache metadata: name: test-url-1 spec: path: /demo/url dataSource: type: URL options: url: https://www.example.com netConfig: securityGroupId: sg-2ze63v3jtm8e6sy****** vSwitchId: vsw-2ze94pjtfuj9vaym******HuggingFaceからモデルをプルします。
apiVersion: eci.aliyun.com/v1alpha1 kind: DataCache metadata: name: test-url-2 spec: path: /demo/url dataSource: type: URL options: repoSource: "HuggingFace/Model" repoId: "decapoda-research/llama-7b-hf" netConfig: securityGroupId: sg-2ze63v3jtm8e6sy****** vSwitchId: vsw-2ze94pjtfuj9vaym******
NAS
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-nas
spec:
path: /demo/nas
dataSource:
type: NAS
options:
server: "0389a***-nh**.cn-beijing.extreme.nas.aliyuncs.com"
path: "/"
vers: "3"
options: "nolock,tcp,noresvport"
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******OSS
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-oss
spec:
path: /demo/oss
dataSource:
type: OSS
options:
bucket: "oss-***"
url: "oss-cn-beijing-internal.aliyuncs.com"
path: "/test"
otherOpts: "-o max_stat_cache_size=0 -o allow_other"
ramRole: "<your RAM Role Name>" //お客様のRAMロール名
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym******SNAPSHOT
apiVersion: eci.aliyun.com/v1alpha1
kind: DataCache
metadata:
name: test-snapshot
spec:
path: /demo/snapshot
dataSource:
type: SNAPSHOT
options:
snapshotId: s-uf6j98q2tvfcjz******
netConfig:
securityGroupId: sg-2ze63v3jtm8e6sy******
vSwitchId: vsw-2ze94pjtfuj9vaym***DataCacheの管理
DataCacheをクエリまたは削除する際に、次のいずれかの名前をリソースタイプ名として使用できます。
edc
datacache
datacaches
datacaches.eci.aliyun.com
DataCacheのクエリ
DataCacheを作成した後、クラスター内のすべてのDataCacheをクエリしたり、DataCacheの詳細を表示したりできます。
クラスター内のすべてのDataCacheをクエリします。
kubectl get edc次の例は出力を示しています。Available状態は、DataCacheが使用できる状態であることを示します。

DataCacheの詳細を表示します。
kubectl describe edc <edc-name>次の出力は、DataCacheの基本情報、メタデータ、構成、ステータス、およびイベント情報を示しています。

DataCacheの削除
各DataCacheはスナップショットに対応しています。スナップショットを保持するには、スナップショットのストレージ料金を支払う必要があります。使用しなくなったDataCacheは削除することをお勧めします。
DataCacheを削除するには、次のコマンドを実行します。
kubectl delete edc <edc-name>